Python:子字符串搜索

时间:2011-10-03 16:26:14

标签: python string search

我正在尝试用字符串搜索整个单词而不确定如何操作。

str1 = 'this is'
str2 ='I think this isnt right'
str1 in str2

给了我True,但我希望它返回False。我该怎么做呢?谢谢。

我尝试了str2.find(str1), re.search(str1,str2),,但我没有让他们返回任何内容或虚假。

请帮忙。感谢。

2 个答案:

答案 0 :(得分:3)

使用正则表达式中的\b实体来匹配单词边界。

re.search(r'\bthis is\b', 'I think this isnt right')

答案 1 :(得分:1)

使用sets而不使用正则表达式的另一种方法:

set(['this', 'is']).issubset(set('I think this isnt right'.split(' ')))

如果字符串真的很长,或者你要继续评估单词是否在集合中,这可能会更有效率。例如:

>>> words = set('I think this isnt right'.split(' '))
>>> words
set(['I', 'this', 'isnt', 'right', 'think'])
>>> 'this' in words
True
>>> 'is' in words
False