正则表达式匹配确切的单词

时间:2018-09-08 11:54:24

标签: python regex string

我正在寻找一个仅与传递的文本匹配的正则表达式。我尝试使用\b确实适用于单词边界,但不适用于!这样的符号。

>>> list(re.finditer(r'\bhe\b','he is hey!'))

[<re.Match object; span=(0, 2), match='he'>]

>>> list(re.finditer(r'\bhe\b','he is he!'))

[<re.Match object; span=(0, 2), match='he'>, <re.Match object; span=(6, 8), match='he'>]

我不希望我的正则表达式匹配“他!”

1 个答案:

答案 0 :(得分:1)

您可以匹配\b后面的单词边界he,并使用否定的前行(?!来验证后面的字符不是非空格字符\S

\bhe(?!\S)

Regex demo

Python test