繁体   English   中英

用Python将单反斜杠替换为双反斜杠

[英]Replace single backslash into double backslash with Python

我需要使用模式匹配中的python将\\替换为\\\\ 例如,应将$$\\a\\b\\c$$匹配为$$\\\\a\\\\b\\\\c$$

我无法使用正则表达式找到匹配项。

>>> import re
>>> p = re.compile("\$\$([^$]+)\$\$")
>>> a = "$$\a\b\c$$"
>>> m = p.search(a)
>>> m.group(1)
'\x07\x08\\c'

我不能简单地将输入作为原始字符串,例如a=r'$$\\a\\b\\c$$'因为它是由markdown处理器自动处理的。 我还发现我无法使用替换方法:

>>> a.replace('\\','\\\\')
'$$\x07\x08\\\\c$$'

我该如何解决这个问题?

您遇到麻烦的原因是因为您输入的字符串是$$\\a\\b\\c$$ ,而python '$$\\x07\\x08\\\\c$$'其转换为'$$\\x07\\x08\\\\c$$' ,并且只有反斜杠在字符串中实际上是在段'\\ c'中,处理此问题的最佳方法是输入a

a=r'$$\a\b\c$$'

这将告诉python将字符串文字转换为原始字符。 如果您要从文件中读取内容,则会自动为您完成此操作。

用单反斜杠分割字符串,然后用双反斜杠加入结果列表。

s = r'$$\a\b\c$$'
t = r'\\'.join(s.split('\\'))
print('%s -> %s' % (s, t))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM