我正在使用正则表达式来匹配特定模式。比如,一个匹配所有三个字母单词的模式。但我希望它不匹配像'和','得到'之类的单词......在Python中用最好的方法做什么。
我的模式是
r'\b\w{3}\b'
我试过
r'(\b\w{3}\b)(?!and)'
但失败了。
答案 0 :(得分:4)
正则表达式从左到右匹配,前瞻也不例外。您的表达式将匹配三个字母,后面没有and
(顺便说一句,由于\b
,这是不可能的。)
在\w
之前移动前瞻以使其正常工作:
r'(\b(?!and)\w{3}\b)'
你可以在那里添加更多单词 -
r'(\b(?!and|got|may)\w{3}\b)'
但是对于更多不匹配,匹配所有三个字母单词并使用代码去除它们的结果可能更有效。