我希望构建一个正则表达式,它只与传递的文本匹配。我尝试使用\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'>]
我不希望我的正则表达式与“he”匹配在
您可以匹配跟在
he
后面的单词边界\b
,并使用一个否定的lookahead(?!
来验证后面的不是非空白字符\S
\bhe(?!\S)
Regex demo
Python test
相关问题 更多 >
编程相关推荐