正则表达式模式以避免匹配某些词,如自定义否定

Regex pattern to avoid match certain words like customize negation

我有一个正则表达式来匹配特定的模式。比方说,一个匹配所有三个字母单词的模式。但我希望它不匹配 'and'、'got' 等词...什么是最好的方法,在 Python.

我的模式是

r'\b\w{3}\b'

我试过了

r'(\b\w{3}\b)(?!and)'

但失败了。

正则表达式从左到右匹配,前瞻也不例外。您的表达式将匹配后面没有 and 的三个字母 (顺便说一句,这是不可能的,因为 \b)。

\w 之前移动前瞻以使其工作:

r'(\b(?!and)\w{3}\b)'

您可以在此处添加更多字词 --

r'(\b(?!and|got|may)\w{3}\b)'

但对于更多的不匹配,匹配所有三个字母的单词并使用代码去除它们的结果可能更有效。