How can I write a regular expression that will not match if a string contains a particular substring?
regex, string
Solution
^(?:(?!NOOOT).)*$
Explanation:
`^` start of string
`(?!NOOOT).` assert that it's not possible to match `NOOOT` at the current position, then match any character.
`(?: ...)*` do this any number of times until...
`$` end of string.
Problem
Example: Suppose in the following example I want to match strings that do not contain the word "NOOOT". `Example A: This shirt is NOOOT black.` `Example B: This shirt is black.` I want something a little bit like the like the non-matching character class (e.g. [^abc]), but for whole strings: `.*?(^NOOOT).*?` Does such a creature exist?