如何在Python的if in语句中实现完整字符串匹配而非部分匹配?
实现完整单词匹配的解决方案
当前代码使用in操作符会匹配子串,导致部分匹配也返回"Yes"。要实现仅匹配完整目标字符串,可采用以下两种方法:
方法一:使用正则表达式匹配完整单词
利用正则的\b单词边界标记,确保目标字符串作为独立完整单词存在于描述中。同时用re.escape()处理目标字符串中的特殊字符,避免正则语法冲突。
import re bus_name = 'GUARDFORCE A' description = 'GUARDFORCE AI CO LIMITED AI GFAIW RIVERSOFT INC PEAKWORK COMPANY GFAIS CONCIERGE GUARDFORCE AI RIVERSOFT ROBOT TRAVEL AGENCY' if re.search(r'\b' + re.escape(bus_name) + r'\b', description): print('Yes') else: print('No')
方法二:分割描述为单词列表后检查
将描述文本按空白字符分割成独立单词的列表,直接检查目标字符串是否在列表中,适合描述仅用空格分隔单词且无额外标点的场景。
bus_name = 'GUARDFORCE A' description = 'GUARDFORCE AI CO LIMITED AI GFAIW RIVERSOFT INC PEAKWORK COMPANY GFAIS CONCIERGE GUARDFORCE AI RIVERSOFT ROBOT TRAVEL AGENCY' word_list = description.split() if bus_name in word_list: print('Yes') else: print('No')
内容的提问来源于stack exchange,提问作者Andrew Hicks
相关产品推荐
相关产品推荐

