python re.sub组:\ number后面的数字
我如何将'foobar'replace为'foo123bar'?
这不起作用:
>>> re.sub(r'(foo)', r'\1123', 'foobar') 'J3bar'
这工作:
>>> re.sub(r'(foo)', r'\1hi', 'foobar') 'foohibar'
我认为这是一个普遍的问题:号码后面的数字。 任何人都可以给我一点如何处理这个问题?
答案是:
re.sub(r'(foo)', r'\g<1>123', 'foobar')
相关文件摘录如下:
除了如上所述的字符转义和反向引用外,\ g将使用由(?P …)语法定义的名为name的组匹配的子string。 \ g使用相应的组号码; \ g 2因此等于\ 2,但在诸如\ g <2>的replace中不是不明确的。 \ 20将被解释为对组20的引用,而不是对组2的引用,后面是字面字符“0”。 反向引用\ g <0>代替RE中匹配的整个子string。