如何在Python字符串中精确匹配单词而非子串?
精确匹配独立单词"with"的实现方法
当前代码里"with" in a会匹配字符串中任意位置的"with"子串(比如"without"里的"with"),所以会返回True。要实现精确匹配独立单词,有两种常用方案:
方法一:用正则表达式的单词边界
借助正则的\b(单词边界)限定匹配完整单词,示例代码:
import re a = "I run away without you" if re.search(r'\bwith\b', a): print("s") else: print("n")
\b会匹配单词字符与非单词字符的边界,确保"with"是独立单词,不会匹配到"without"这类包含它的长单词。
方法二:分割字符串为单词列表后检查
先把字符串拆成独立单词,再判断目标单词是否在列表中:
a = "I run away without you" words = a.split() if "with" in words: print("s") else: print("n")
如果字符串带标点(比如"with,"),可以先去除每个单词的标点符号:
a = "I run away without you, with me" words = [word.strip('.,!?') for word in a.split()] if "with" in words: print("s") else: print("n")
内容的提问来源于stack exchange,提问作者Vinz1396
相关产品推荐
相关产品推荐

