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