gpt4 book ai didi

python - 找到字符串的精确匹配

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:01 27 4
gpt4 key购买 nike

我使用以下函数来查找字符串中单词的精确匹配。

def exact_Match(str1, word):
result = re.findall('\\b'+word+'\\b', str1, flags=re.IGNORECASE)
if len(result)>0:
return True
else:
return False

exact_Match(str1, word)

但是我得到了“award”和“award-winning”这两个词的完全匹配,而它只应该是以下字符串的 award-winning。

str1 = "award-winning blueberries"
word1 = "award"
word2 = "award-winning"

我怎样才能使 re.findall 将整个单词与连字符和其他标点符号匹配?

最佳答案

创建自己的单词边界:

def exact_Match(phrase, word):
b = r'(\s|^|$)'
res = re.match(b + word + b, phrase, flags=re.IGNORECASE)
return bool(res)

从这里复制粘贴到我的解释器:

>>> str1 = "award-winning blueberries"
>>> word1 = "award"
>>> word2 = "award-winning"
>>> exact_Match(str1, word1)
False
>>> exact_Match(str1, word2)
True

实际上,转换为 bool 是不必要的,而且一点帮助也没有。没有它,功能会更好:

def exact_Match(phrase, word):
b = r'(\s|^|$)'
return re.match(b + word + b, phrase, flags=re.IGNORECASE)

注意:exact_Match 是非常规的大小写。只需将其称为 exact_match。

关于python - 找到字符串的精确匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com