Jake Wilson Jake Wilson - 14 days ago 5
Javascript Question

In JavaScript, how can I use regex to match unless words are in a list of excluded words?

How do I use regex to match any word (\w) except a list of certain words? For example:

I want to match the words

use
and
utilize
and any words after it except if the words are
something
or
fish
.

use this <-- match
utilize that <-- match
use something <-- don't want to match this
utilize fish <-- don't want to match this


How do I specify a list of words I don't want to match against?

Answer

You can use a negative lookahead to determine that the word you are about to match is not a particular thing. You can use the following regex to do this:

(use|utilize)\s(?!fish|something)(\w+)

This will match "use" or "utilize" followed by a space, and then if the following word is not "fish" or "something", it will match that next word.