比方说,我想检查单词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
?
答案 0 :(得分:10)
import re
if re.search(r'\btest\b', theString):
pass
这将在test
的任一端查找单词边界。来自the docs,\b
:
匹配空字符串,但仅匹配单词的开头或结尾。单词被定义为字母数字或下划线字符的序列,因此单词的结尾由空格或非字母数字的非下划线字符表示。