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. -- http://mail.python.org/mailman/listinfo/python-list