正则表达式模式以避免匹配某些词,如自定义否定
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)'
但对于更多的不匹配,匹配所有三个字母的单词并使用代码去除它们的结果可能更有效。
我有一个正则表达式来匹配特定的模式。比方说,一个匹配所有三个字母单词的模式。但我希望它不匹配 '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)'
但对于更多的不匹配,匹配所有三个字母的单词并使用代码去除它们的结果可能更有效。