group 0 in the re module
J. Gerlach
gerlach_joerg at web.de
Wed Dec 8 05:12:35 EST 2010
Am 08.12.2010 03:23, schrieb Yingjie Lan:
> Hi,
>
> According to the doc, group(0) is the entire match.
>
>>>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>>> m.group(0) # The entire match 'Isaac Newton'
>
> But if you do this:
>>>> import re
>>>> re.sub(r'(\d{3})(\d{3})', r'\0 to \1-\2', '757234')
> '\x00 to 757-234'
>
> where I expected
> '757234 to 757-234'
>
> Then I found that in python re '\0' is considered an octal number.
> So, is there anyway to refer to the entire match by an escaped
> notation?
>
> Thanks,
>
> Yingjie
>
the documentation of the re module says:
> \g<number> uses the corresponding group number; \g<2> is
> therefore equivalent to \2, but isn’t ambiguous in a replacement such
> as \g<2>0. \20 would be interpreted as a reference to group 20, not a
> reference to group 2 followed by the literal character '0'. The
> backreference \g<0> substitutes in the entire substring matched by
> the RE.
.. so you're looking for r"\g<0> to \1-\2"
More information about the Python-list
mailing list