正则表达式替换中的字符编码

2024-04-19 22:18:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用另一种模式替换正则表达式。更具体地说,我想用$latex some_latex$替换$$ some_latex $$。我试着跟着。你知道吗

In [22]: re.sub(r'\$\$(?P<pat>.+?)\$\$', r'$latex \1 $', "$$ x = \frac{2}{3}$$", re.DOTALL | re.U)
Out[22]: '$latex  x = \x0crac{2}{3} $'

单词\frac被转换成\x0crac。如何克服这个问题。我也试着跟着。没用的。你知道吗

re.sub(r'\$\$(?P<pat>.+?)\$\$', r'$latex \1 $', "$$ x = \frac{2{3}$$".encode("string_escape"), re.DOTALL | re.U)
'$latex  x = \\x0crac{2}{3} $'

Tags: inrestring模式someout单词encode
1条回答
网友
1楼 · 发布于 2024-04-19 22:18:26

这与正则表达式无关;\f是一个表单提要转义代码:

>>> '\f'
'\x0c'
>>> len('\f')
1

字符已经存在在您的输入中,甚至在替换之前:

>>> "$$ x = \frac{2}{3}$$"
'$$ x = \x0crac{2}{3}$$'

双斜杠或使用原始字符串文字:

>>> '\\f'
'\\f'
>>> r'\f'
'\\f'
>>> print '\\f'
\f
>>> len('\\f')
2

相关问题 更多 >