Negative look-ahead assertion (?!...)

Q

What is a negative look-ahead assertion? How to use it?

How to write a regular expression to find words without 'oo' in text like: how, to, look, google, school?

✍: FYIcenter.com

A

A negative look-ahead assertion is a zero-width assertion that allows you to not match a subpattern beyond the current position (look-ahead) without moving the matching position. Positive look-ahead assertion is expressed as (?!pattern). For example:

\w+(?!-)  - matches a word not followed by a '-'

The regular expression to match find words without 'oo' is:

 +(?!\w*oo)(\w+)

 +          - skip space characters
(?!\w*oo)   - any word without '00' ahead?
(\w+)       - capture the word

Click the button to test this regular expression here online:

2013-01-26, 0👍, 0💬