How To Negate Regex

StackOverflowNewbie picture StackOverflowNewbie · Feb 4, 2013 · Viewed 58.4k times · Source

Possible Duplicate:
Regular expression to match string not containing a word?
How can I invert a regular expression in JavaScript?

Say I have the regex foo123. How do I match everything that is not foo123?

Answer

Naveed S picture Naveed S · Feb 4, 2013

Use negative lookahead for this.

(?!foo123).+

matches any string except foo123

If you want to match empty string also, use (?!foo123).*

In your case (according to the comment) the required regex is (?!P[0-9]{1,}).+.

It matches P and 123, but not P123.