Lookahead assertions
Positive and negative lookahead assertions are zero-width assertions that allow for certain regular expression-based checks to be performed on the text that is ahead (or on the right-hand side) of the current position. The regex engine holds on to the current position after evaluating the lookahead pattern. We can chain multiple lookahead expressions one after another, but the regex engine does not move the control after checking all the lookaheads. Lookahead assertions can help solve some complex regex problems, which are not possible or are very difficult to solve without lookahead support. The Java regular expression engine, like many other regular expression flavors, allows the use of variable-length quantifiers such as *
and +
in lookahead patterns.
There are two types of lookahead assertions: positive lookahead and negative lookahead.
Positive lookahead
A positive lookahead assertion asserts true if the pattern inside the lookahead is matched.
The following is its...