在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组?
答案 0 :(得分:2)
不是。但是,您可以在整个表达式周围放置一个捕获组,并用\1
引用它,而内部组则用\2
引用。
>>> re.sub(r"((\d)\2)", r"\1\2", "aa11bb22cc33")
>>> 'aa111bb222cc333'