Python - 检查字符串是否在更大的字符串中

时间:2015-04-28 11:29:03

标签: regex python-2.7

我正在使用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 

有人可以解释我该怎么做?

1 个答案:

答案 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]