python regular expression help

7stud bbxx789_05ss at yahoo.com
Wed Apr 11 23:27:57 EDT 2007


On Apr 11, 7:41 pm, liupeng <liup... at 18mail.cn> wrote:
> pattern = re.compile(r'\w+\s*=\s*[0-9]*.[0-9]*\s*')
> lists = pattern.findall(s)
> print lists
> ['a=4 ', 'b=3.4 ', 'c=4.5']
>
> On Wed, Apr 11, 2007 at 06:10:07PM -0700, Qilong Ren wrote:
> > Hi, everyone,
>
> > I am extracting some information from a given string using python RE. The
> > string is ,for example,
> >    s = 'a = 4 b =3.4 5.4 c = 4.5'
> > What I want is :
> >    a = 4
> >     b = 3.4 5.4
> >    c = 4.5
> > Right now I use :
> >    pattern = re.compile(r'\w+\s*=\s*.*?\s+')
> >    lists = pattern.findall(s)
> > It works for the string like 'a = 4 b = 3.4 c = 4.5', but does not work with
> > strings like 'a=4 b=3.4 5.4 c = 4.5'
>
> > Any suggestion?
>
> > Thanks,Qilong
>
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━
> > Don't get soaked. Take a quick peak at the forecast
> > with theYahoo! Search weather shortcut.
> > --
> >http://mail.python.org/mailman/listinfo/python-list
>
>  signature.asc
> 1KDownload

Try this:

import re

s = 'a = 4 b =3.4 5.4 c = 4.5'
r = re.compile("[a-z]+.*?(?=[a-z]|$)" )
l = r.findall(s)
print l


More information about the Python-list mailing list