我想确定repl
的论证re.sub
是转义,因此任何特殊序列如\1
不被解释:
>>> repl = r'\1'
>>> re.sub('(X)', repl, 'X')
'X'
>>> re.sub('(X)', desired_escape_function(repl), 'X')
'\\1'
有没有一个函数可以做到这一点?我知道re.escape https://docs.python.org/3/library/re.html#re.escape存在,应该使用吗?
不使用re.escape
以此目的。re.escape
旨在用于pattern
论证,而不是repl
争论。
相反,请遵循Python 文档的建议 https://docs.python.org/3/library/re.html#re.escape,然后手动将所有反斜杠替换为两个反斜杠:
>>> repl = r'\1'
>>> re.sub('(X)', repl.replace('\\', '\\\\'), 'X')
'\\1'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)