python regular expression help

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Thu Apr 12 00:50:00 EDT 2007


En Wed, 11 Apr 2007 23:14:01 -0300, Qilong Ren <qilong_ren at yahoo.com>  
escribió:

> Thanks for reply. That actually is not what I want. Strings I am dealing  
> with may look like this:
>      s = 'a = 4.5 b = 'h'  'd' c = 4.5 3.5'
> What I want is
>      a = 4.5
>      b = 'h' 'd'
>      c = 4.5 3.5

That's a bit tricky. You have LHS = RHS where RHS includes all the  
following text *except* the very next word before the following = (which  
is the LHS of the next expression). Or something like that :)

py> import re
py> s = "a = 4.5 b = 'h'  'd' c = 4.5 3.5"
py> r = re.compile(r"\w+\s*=\s*.*?(?=\w+\s*=|$)")
py> for item in r.findall(s):
...   print item
...
a = 4.5
b = 'h'  'd'
c = 4.5 3.5

-- 
Gabriel Genellina




More information about the Python-list mailing list