我正在尝试对正则表达式进行重做,以包括在单词前面有匹配项的情况下搜索匹配该单词的短语,但如果单词后面有匹配项则不进行搜索。例如,如果我的单词为exe
,则希望它与cmd.exe
匹配,但不与单词executable
匹配。
到目前为止,我已经有了这段代码,但是可以在exe
中找到executable
,也可以找到以/包含exe开头的单词。
self.soup.find_all(string=re.compile('.*{0}.*'.format(re.escape(searched_word)))
答案 0 :(得分:1)
您可以使用“单词边界” \b
:
self.soup.find_all(string=re.compile(r'\b{0}\b'.format(re.escape(searched_word)))
奖金 :原始字符串:r'\b{0}\b'
以保护您的斜线;-)
来自https://docs.python.org/3/library/re.html#regular-expression-syntax
\b
匹配空字符串,但仅匹配单词的开头或结尾。单词定义为单词字符序列。