gpt4 book ai didi

python - 正则表达式差异 Python2 和 Python3

转载 作者:行者123 更新时间:2023-12-04 07:20:50 24 4
gpt4 key购买 nike

我想将此代码从 python2 移植到 python3

p = re.compile(ur"(?s)<u>(.*?)<\/u>")
subst = "\underline{\\1}"
raw_html = re.sub(p, subst, raw_html)
我已经发现 ur应改为仅 r :
p = re.compile(r"(?s)<u>(.*?)<\/u>")
subst = "\underline{\\1}"
raw_html = re.sub(p, subst, raw_html)
但是它不起作用它提示这个:
cd build && PYTHONWARNINGS="ignore" python3 ../src/katalog.py --katalog 1
Traceback (most recent call last):
File "src/katalog.py", line 11, in <module>
from common import *
File "src/common.py", line 207
subst = "\underline{\\1}"
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
make: *** [katalog1] Error 1
但是将其更改为 "\underline"也无济于事。那么它不会取代它。

最佳答案


import re
raw_html = r"<u>1</u> and <u>2</u>"
p = re.compile(r"(?s)<u>(.*?)</u>")
subst = r"\\underline{\1}"
raw_html = re.sub(p, subst, raw_html)
print(raw_html)
Python proof ,结果是 \underline{1} and \underline{2} .基本上,在内部替换中,使用双反斜杠替换为单个反斜杠。使用原始字符串文字使 Python 中的正则表达式更轻松。

关于python - 正则表达式差异 Python2 和 Python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68513720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com