Regular Expression pattern group
JH
john.hsu at sovereign.co.nz
Thu Jun 15 02:13:59 EDT 2006
Hi
I am a fussy learner. Could someone explain to me why the following
inconsistency exists between methods? How can it be justified if it is
considered all right?
There are three groups in pattern. However, match object shows 3 groups
in collection, but group has to be indexed from one because the
m.group(0) is the implicit group for whole pattern.
Are these just some things to remember? "Group counting is from one".
>>> p = sre.compile('abc(.(.).)d(ef)')
>>> s
'xxxabc???defxxx'
>>> m = p.search(s)
>>> m.groups()
('???', '?', 'ef')
>>> m.group(0)
'abc???def'
>>> m.group(1)
'???'
>>> m.group(2)
'?'
>>> m.group(3)
'ef'
>>> m.group(4)
Traceback (most recent call last):
File "<pyshell#279>", line 1, in -toplevel-
m.group(4)
IndexError: no such group
>>> p.findall(s)
[('???', '?', 'ef')]
>>>
More information about the Python-list
mailing list