如何实现Python仅匹配完整单词的字符串存在性校验功能?
实现完整单词匹配的逻辑调整
核心思路
你原来的代码是子串匹配逻辑,只要string2拆分出的片段是string1的连续字符就算匹配。要实现只有完整单词匹配才返回True,只需要把string1也提前拆分为独立单词集合,再做存在性判断即可。
修正后的代码
def check_word_match(string1, string2): # 把string1拆分为独立单词集合,自动去重,匹配效率更高 string1_words = set(string1.split()) # 拆分string2为单词列表 test_words = string2.split() for word in test_words: # 直接判断是否是string1的完整单词 if word in string1_words: return True return False # 测试用例 string1 = "Billie Jean" print(check_word_match(string1, "Baby Jean")) # 输出True print(check_word_match(string1, "ea")) # 输出False
补充说明
- 如果需要适配大小写不敏感的匹配场景,可以在拆分单词后统一转为小写/大写再判断,比如
word.lower() in {w.lower() for w in string1.split()} - 代码默认过滤了空字符串的影响,就算
string2存在连续空格也不会出现空单词误判的问题
内容的提问来源于stack exchange,提问作者TheOGFlipFlop
相关产品推荐
相关产品推荐

