找不到对应的 PEP 或 Pythonre
模块中的一个问题的错误。
有谁知道是否计划修复以下问题?
来自正则表达式.info:
Python 不支持替换文本语法中的十六进制转义,即使它支持字符串常量中的 \xFF 和 \uFFFF。
但它实际上支持标准转义,如\n
,\r
等。
因此,例如,不能使用十六进制转义符替换'<'
字符:'>'
>>> import re
>>> re.sub(r'\x3c', r'\x3e', '\x3c')
'\\x3e'
而不是'\\x3e'
应该是'>'
.
使用转义\n
工作正常:
>>> re.sub(r'a', r'\n', 'a')
'\n'
提前致谢!
UPD:不使用原始字符串不是一种选择。例如,如果模式和替换字符串存储在配置文件中,那么如果我在其中写入 \x3e,它将'\\x3e'
在读取时变为,而不是'>'
.