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

时间:2014-11-30 21:48:03

标签: python regex

我需要使用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$$'

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您遇到问题的原因是因为您输入的字符串是$$\a\b\c$$,哪个python转换为'$$\x07\x08\\c$$',字符串中唯一的反斜杠实际上是细分市场' \ c'处理这个的最好方法是输入一个这样的

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

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

答案 1 :(得分:0)

使用单个反斜杠拆分字符串,然后使用双反斜杠连接结果列表。

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