gpt4 book ai didi

Python re.sub : ignore backreferences in the replacement string

转载 作者:太空狗 更新时间:2023-10-30 00:37:08 25 4
gpt4 key购买 nike

我想用字符串替换模式。该字符串在变量中给出。当然,它可能包含“\1”,不应将其解释为反向引用 - 而应简单地解释为\1。

我怎样才能做到这一点?

最佳答案

以前使用 re.escape() 的答案会转义太多,并且您会在替换和替换字符串中得到不需要的反斜杠。

似乎在 Python 中只有反斜杠需要在替换字符串中转义,因此这样的事情就足够了:

replacement = replacement.replace("\\", "\\\\")

Example :

import re

x = r'hai! \1 <ops> $1 \' \x \\'
print "want to see: "
print x

print "getting: "
print re.sub(".(.).", x, "###")
print "over escaped: "
print re.sub(".(.).", re.escape(x), "###")
print "could work: "
print re.sub(".(.).", x.replace("\\", "\\\\"), "###")

输出:

want to see: 
hai! \1 <ops> $1 \' \x \\
getting:
hai! # <ops> $1 \' \x \
over escaped:
hai\!\ \1\ \<ops\>\ \$1\ \\'\ \x\ \\
could work:
hai! \1 <ops> $1 \' \x \\

关于Python re.sub : ignore backreferences in the replacement string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8441984/

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