我正在使用Python v2.7,并且我试图找出你是否可以判断某个单词是否在字符串中。
例如,如果我有一个字符串和我想要找到的单词:
str = "ask and asked, ask are different ask. ask"
word = "ask"
我应该如何编码,以便我知道我获得的结果并不包含其他单词的一部分。在上面的例子中,我想要所有的"问"除了一个"问"。
我尝试使用以下代码,但它不起作用:
def exact_Match(str1, word):
match = re.findall(r"\\b" + word + "\\b",str1, re.I)
if len(match) > 0:
return True
return False
有人可以解释我该怎么做?
答案 0 :(得分:3)
您可以使用以下功能:
>>> test_str = "ask and asked, ask are different ask. ask"
>>> word = "ask"
>>> def finder(s,w):
... return re.findall(r'\b{}\b'.format(w),s,re.U)
...
>>> finder(text_str,word)
['ask', 'ask', 'ask', 'ask']
请注意,边框正则表达式需要\b
!
或者您可以使用以下函数返回单词索引: 在拆分字符串中:
>>> def finder(s,w):
... return [i for i,j in enumerate(re.findall(r'\b\w+\b',s,re.U)) if j==w]
...
>>> finder(test_str,word)
[0, 3, 6, 7]