"gburde...@gmail.com" <gburde...@gmail.com> wrote:

> If I do this:
> 
> import re
> a=re.search(r'hello.*?money',  'hello how are you hello funny money')
> 
> I would expect a.group(0) to be "hello funny money", since .*? is a
> non-greedy match. But instead, I get the whole sentence, "hello how
> are you hello funny money".
> 
> Is this expected behavior? How can I specify the correct regexp so
> that I get "hello funny money" ?
> 
> 
Another option nobody has yet suggested:

>>> re.match(r'.*(hello.*?money)',  'hello how are you hello funny 
>>> money').group(1)
'hello funny money'

The initial .* will effectively make the search start at the end and work 
backwards
so it finds the last 'hello' that is followed by 'money' instead of the first.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to