我正在尝试用字符串搜索整个单词而不确定如何操作。
str1 = 'this is'
str2 ='I think this isnt right'
str1 in str2
给了我True
,但我希望它返回False
。我该怎么做呢?谢谢。
我尝试了str2.find(str1), re.search(str1,str2),
,但我没有让他们返回任何内容或虚假。
请帮忙。感谢。
答案 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