单词匹配前的正则表达式

时间:2012-05-07 03:04:20

标签: regex

我试图创建一个正则表达式,查找某个单词后面跟着“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

问题是“不”匹配这不是我想要的。如果它前面有一个指定的单词,我只希望它匹配。我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您在这里有一个额外的管道:had||has(它应该是had|has)。

这就像说"had" or "" or "has"。所以一个空字符串后跟一个后跟“not”的空格将匹配你的正则表达式。

顺便说一句,您可能不希望单词列表末尾的+。这使它成为一个或多个,所以你的正则表达式将匹配“canwoulddoes not”。只需删除+即可解决此问题。