Positive lookahead assertion

Paddy paddy3118 at netscape.net
Thu Sep 7 22:35:33 EDT 2006


tobiah wrote:
> >> Posted via a free Usenet account from http://www.teranews.com
> > Its all about context. If you want to match something but only if it
> > precedes something else, then you follow the regular expression for
> > 'something' by the regular expression for 'something else' where
> > `something else` is enclosed by (?=...)
> >
> > The regular expression engine will surreptitiously check that
> > 'something else' does indeed follow, before returning any match of
> > 'something'.
>
>
> How would this differ from just
>
> re.search('somethingsomething else')
>

Notice that in the last search below, something else needs to follow,
but is not consumed.

>>> import re
>>> re.search(r'something', ' somethingsomethingsomething else').span()
(1, 10)
>>> re.search(r'somethingsomething else', ' somethingsomethingsomething else').span()
(10, 33)
>>> re.search(r'something(something else)', ' somethingsomethingsomething else').span()
(10, 33)
>>> re.search(r'something(?=something else)', ' somethingsomethingsomething else').span()
(10, 19)
>>> 

- Paddy.




More information about the Python-list mailing list