在Python re.sub函数中,如何使用\ n语法引用组0?

时间:2019-04-29 18:34:25

标签: python regex replace str-replace

在Python re.sub()的替换参数中,我想引用整个匹配的字符串,即组0。但是,它不能按预期工作。

>>> re.sub(r"(\d)\1", r"\0\1", "aa11bb22cc33")
'aa\x001bb\x002cc\x003'

请注意,\1确实正确地引用了组1。我必须使用\g<n>语法来引用组0。

>>> re.sub(r"(\d)\1", r"\g<0>\1", "aa11bb22cc33")
'aa111bb222cc333'

我想知道,是否可以使用\n语法在替换参数中引用第0组?

1 个答案:

答案 0 :(得分:2)

不是。但是,您可以在整个表达式周围放置一个捕获组,并用\1引用它,而内部组则用\2引用。

>>> re.sub(r"((\d)\2)", r"\1\2", "aa11bb22cc33")
>>> 'aa111bb222cc333'