正确地检查字符串中是否包含某个单词?

3

比如说,我想要检查一个字符串中是否包含单词 test。通常来说,我会这样做:

if 'test' in theString

但我希望确认的是实际单词,而不仅仅是字符串。例如,在“这很可恶”中的test将产生误报。我可以检查它是否包含(\s)test(\s)(前后有空格),但是那么“...为测试做准备!”将产生误报。看来我唯一的选择是:

if ' test ' in theString or ' test.' in theString or ' test!' in theString or.....

有没有一种正确的方法可以这样做,类似于if 'test'.asword in theString

1个回答

10
import re
if re.search(r'\btest\b', theString):
    pass
这将在test的两端寻找单词边界。根据文档\b

匹配空字符串,但仅在单词的开头或结尾。单词被定义为由字母数字或下划线字符组成的序列,因此单词的结尾由空格或非字母数字、非下划线字符表示。


还有8分钟。叹气。感谢您的回答,尽管我在示例中使用了它,但我没有想到正则表达式! - tkbx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接