On Tue, Jan 18, 2005 at 04:40:54PM -0500, Charles Hartman wrote:
>       find 'abca' in string 'abcabca'
> 
> Every *single* RE I can think of misses the second instance (beginning 
> in position 3) in the first example, because it's eaten the beginning 
> of it in finding the first instance.

Lookahead will do this one, e.g.:

In [39]: [m.span() for m in re.finditer(r'(?=abca)', 'abcabca')]
Out[39]: [(0, 0), (3, 3)]

>       find longest '(a[ab])+' in string 'baabaaabba'

I don't think even Perl regexps can do the second one, but I might be
wrong.  Neither greedy or non-greedy quantifiers will compare match
length.  You could get a list of all matches and pick the longest one
yourself.

-- 
Nicholas Riley <[EMAIL PROTECTED]> | <http://www.uiuc.edu/ph/www/njriley>
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to