I trying to make a regular expression that looks for a certain word followed by ” not” for example “does not”, ” are not”, etc. There is my regular expression so far: http://rubular.com/r/5bPRtuz9lA
/\b(are|can|could|did|does|do|had||has|should|have|is|were|might|must|will|would)+\snot/i
The problem is that ” not” matches this which isn’t what I want. I only want it to match if it is preceded by one of the specified words. What am I doing wrong here?
You have an extra pipe here :
had||has(It should behad|has).Which is like saying
"had" or "" or "has". So an empty string followed by a space followed by “not” will match your regex.Btw, you probably don’t want the
+at the end of your word list. That makes it one or more so your regex will match “canwoulddoes not”. Just remove the+to fix that.