正确检查单词是否在字符串中?

时间:2012-08-03 23:51:39

标签: python string

比方说,我想检查单词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 个答案:

答案 0 :(得分:10)

import re
if re.search(r'\btest\b', theString):
    pass

这将在test的任一端查找单词边界。来自the docs\b

  

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