Look ahead
The first type of look around mechanism that we are going to study is the look ahead mechanism. It tries to match ahead the subexpression passed as an argument. The zero-width nature of the two look around operations render them complex and difficult to understand.
As we know from the previous section, it is represented as an expression preceded by a question mark and an equals sign, ?=
, inside a parenthesis block: (?=regex)
.
Let's start tackling this by comparing the result of the two similar regular expressions. We can recall that in Chapter 1, Introducing Regular Expressions, we matched the expression /fox/
to the phrase The quick brown fox jumps over the lazy dog
. Let's also apply the expression /(?=fox)/
to the same input:
>>>pattern = re.compile(r'fox') >>>result = pattern.search("The quick brown fox jumps over the lazy dog") >>>print result.start(), result.end() 16 19
We just searched the literal fox
in the input string, and just as expected we have...