result = re.sub(r"""(?x)
(?<!\\) # Make sure that there is no backslash before the current position
\\ # Match a backslash
(?= # only if...
(?:\\\\)* # an even number of backslashes follows (including zero)
(?!\\) # and no further backslashes follow after that
) # (End of lookahead assertion)""",
r"\\\\", subject)
您不需要正则表达式,如果您只需执行一个简单的string replace来加倍所有的反斜杠,然后再执行另一个string replace来消除已经加倍的反斜杠,那么您就可以得到想要的结果了:
或者,先将双倍的反斜杠去掉,然后再将所有反斜杠加倍:
^{pr2}$我用下面的组合来回避一下:
(它还有一个额外的好处,即对某些人(我)可能由于贪婪地替换反斜杠而错误地输入的路径进行基本卫生处理。)
仅当此处的连续反斜杠数为奇数时才替换反斜杠。在
相关问题 更多 >
编程相关推荐