re.sub
在 Python 2.7 中,以下示例使用了一个简单的反向引用:
re.sub('-{1,2}', r'\g<0> ', 'pro----gram-files')
它按预期输出以下字符串:
'pro-- -- gram- files'
我希望以下示例是相同的,但事实并非如此:
def dashrepl(matchobj):
return r'\g<0> '
re.sub('-{1,2}', dashrepl, 'pro----gram-files')
这给出了以下意外输出:
'pro\\g<0> \\g<0> gram\\g<0> files'
为什么这两个示例给出不同的输出?我是否错过了解释这一点的文档中的某些内容?有什么特别的原因表明这种行为比我预期的更可取吗?有没有办法在替换函数中使用反向引用?