regex: multiple matching for one string
Bill at SynectixLtd.com
Thu Jul 23 11:44:50 EDT 2009
"Mark Lawrence" <breamoreboy at yahoo.co.uk> wrote in message
news:mailman.3588.1248355389.8015.python-list at python.org...
> scriptlearner at gmail.com wrote:
>> For example, I have a string "#a=valuea;b=valueb;c=valuec;", and I
>> will like to take out the values (valuea, valueb, and valuec). How do
>> I do that in Python? The group method will only return the matched
>> part. Thanks.
>> p = re.compile('#a=*;b=*;c=*;')
>> m = p.match(line)
>> if m:
>> print m.group(),
> IMHO a regex for this is overkill, a combination of string methods such as
> split and find should suffice.
For the OP, it can be done with regex by grouping:
p = re.compile(r'#a=(*);b=(*);c=(*);')
m = p.match(line)
m.group(1) has valuea in it, etc.
But this may not be the best way, but it is reasonably terse.
More information about the Python-list