Bug in re module?

Ant antroy at gmail.com
Fri Oct 6 11:49:39 EDT 2006


Look at the following minimal example:

>>> import re
>>> p = re.compile(r"(:?Test) (String)")
>>> m = p.search("This is a Test String OK?")
>>> m.groups()
('Test', 'String')

I would have expected this to produce:

('String')

since (:?...) should be a non-capturing group. From the module
reference:

(?:...)
    A non-grouping version of regular parentheses. Matches whatever
regular expression is inside the parentheses, but the substring matched
by the group cannot be retrieved after performing a match or referenced
later in the pattern.




More information about the Python-list mailing list