[英]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.