python re.sub group: number after \\number
How can I replace foobar with foo123bar ? This doesn't work: >>> re.sub(r'(foo)', r'\1123', 'foobar') 'J3bar' This works: >>> re.sub(r'(foo)', r'\1hi', 'foobar') 'foohibar' I think it's a common issue when having something like \number . Can anyone give me a hint on how to handle this? The answer is: re.sub(r'(foo)', r'\g<1>123', 'foobar') Relevant excerpt from the docs: In addition to character escapes and backreferences as described above, \g will use the substring matched by the group named name, as defined by the (?P...) syntax. \g uses the corresponding group number; \g<2> is therefore