Python - Check If string Is In bigger String
我使用的是python2.7版,我想知道你是否能分辨出一个单词是否在一个字符串中。
例如,如果我有一个字符串和要查找的单词:
1 2 | str ="ask and asked, ask are different ask. ask" word ="ask" |
我应该如何编码,以便我知道我得到的结果不包括属于其他单词的单词。在上面的例子中,我想要所有的"ask",除了一个"ask"。
我已尝试使用以下代码,但它不起作用:
1 2 3 4 5 | def exact_Match(str1, word): match = re.findall(r"\\b" + word +"\\b",str1, re.I) if len(match) > 0: return True return False |
有人能解释一下我该怎么做吗?
您可以使用以下功能:
1 2 3 4 5 6 7 8 | >>> 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'] |
注意,边界regex需要
或者可以使用以下函数返回单词的索引:在拆分字符串中:
1 2 3 4 5 | >>> 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] |