我试图创建一个正则表达式,查找某个单词后面跟着“not”,例如“不”,“不是”等等。到目前为止,我的正则表达式是:http://rubular.com/r/5bPRtuz9lA
/\b(are|can|could|did|does|do|had||has|should|have|is|were|might|must|will|would)+\snot/i
问题是“不”匹配这不是我想要的。如果它前面有一个指定的单词,我只希望它匹配。我在这里做错了什么?
答案 0 :(得分:3)
您在这里有一个额外的管道:had||has
(它应该是had|has
)。
这就像说"had" or "" or "has"
。所以一个空字符串后跟一个后跟“not”的空格将匹配你的正则表达式。
顺便说一句,您可能不希望单词列表末尾的+
。这使它成为一个或多个,所以你的正则表达式将匹配“canwoulddoes not”。只需删除+
即可解决此问题。