Confused about 'positive lookbehind assertion'
Karthik Gurusamy
kar1107 at gmail.com
Tue Sep 25 16:55:52 EDT 2007
On Sep 25, 8:01 am, Erik Jones <e... at myemma.com> wrote:
> On Sep 24, 2007, at 9:38 PM, Robert Dailey wrote:
>
> > Hi,
>
> > I've been reading the python documentation on 'positive lookbehind
> > assertion' and I don't understand at all how it works. The python
> > docs give the following example:
>
> > " (?<=abc)def will find a match in "abcdef", since the lookbehind
> > will back up 3 characters and check if the contained pattern matches."
>
> > Can anyone emphasize more on what this RE operation does? Thanks.
>
> Have you actually tried it out?
>
> >>> import re
> >>> r = re.compile(r'(?<=abc)def')
> >>> m1 = r.search('aaaabcdeffff')
> >>> m1.group()'def'
> 'def'
> >>> m2 = r.search('bcdefff')
> >>> m2 == None
> True
>
> So, it matches 'def' but only if it is immediately preceded by 'abc'.
Any idea what this positive lookbehind achieves which can't be done
without it.
I remember cases where positive look-ahead is useful.
In the above example, r.search('abcdef') does the job of ensuring
'def' is preceded by 'abc'.
Karthik
>
> Erik Jones
>
> Software Developer | Emma®
> e... at myemma.com
> 800.595.4401 or 615.292.5888
> 615.292.0777 (fax)
>
> Emma helps organizations everywhere communicate & market in style.
> Visit us online athttp://www.myemma.com
More information about the Python-list
mailing list