Iterate over group names in a regex match?

MRAB python at mrabarnett.plus.com
Tue Jan 19 13:20:42 EST 2010


Brian D wrote:
> Here's a simple named group matching pattern:
> 
>>>> s = "1,2,3"
>>>> p = re.compile(r"(?P<one>\d),(?P<two>\d),(?P<three>\d)")
>>>> m = re.match(p, s)
>>>> m
> <_sre.SRE_Match object at 0x011BE610>
>>>> print m.groups()
> ('1', '2', '3')
> 
> Is it possible to call the group names, so that I can iterate over
> them?
> 
> The result I'm looking for would be:
> 
> ('one', 'two', 'three')
> 
The closest you can get is with groupdict():

 >>> print m.groupdict()
{'one': '1', 'three': '3', 'two': '2'}




More information about the Python-list mailing list