Look-arounds are used to check what comes before or after, without consuming or capturing. ("Without consuming" means that matches for look-around assertions no not become part of the string to be replaced.
Look-around patterns have two components:
- The main pattern to match, and
- a "test" pattern that will be used to qualify the main pattern's match
The test pattern does not consume or capture any text, it is purely a logical test.
One can think of look-arounds as "conditional patterns". That is, they create patterns that only match if another condition is met.
Look-arounds come in two types:
- Positive
- Match this pattern if the test pattern also matches
- Negative
- Match this pattern if the test pattern does not match
While each look-around applies in one of two directions:
- Ahead
- The test pattern is applied to the right of the main pattern
- Behind
- The test pattern is applied to the left of the main pattern
We will take a look at each of these in the following sections.