用“\\”python替换所有“\”

时间:2011-06-26 21:40:52

标签: python regex

有没有人知道如何在python中用\替换所有\\? 我试过了:

re.sub('\','\\',string)

但由于逃脱序列,它将其搞砸了。 有谁知道我问题的问题?

4 个答案:

答案 0 :(得分:20)

你只需要转义字符串中的反斜杠:(也不需要正则表达式)

>>> s = "cats \\ dogs"
>>> print s
cats \ dogs
>>> print s.replace("\\", "\\\\")
cats \\ dogs

答案 1 :(得分:8)

你应该这样做:

re.sub(r'\\', r'\\\\', string)

由于r'\'不是有效的字符串

顺便说一句,你应该总是使用带有正则表达式的原始(r'')字符串,因为许多事情是用反斜杠完成的。

答案 2 :(得分:3)

您需要re.sub("\\\\","\\\\\\\\",string)re.sub(r'\\', r'\\\\', string),因为您需要两次转义每个斜杠...一次为字符串,一次为正则表达式。

>>> whatever = r'z\w\r'
>>> print whatever
z\w\r
>>> print re.sub(r"\\",r"\\\\", whatever)
z\\w\\r
>> print re.sub("\\\\","\\\\\\\\",whatever)
z\\w\\r

答案 3 :(得分:3)

你应该逃避反斜杠,而且你也不需要正则表达式来完成这个简单的操作:

>>> my_string = r"asd\asd\asd\\"
>>> print(my_string)
asd\asd\asd\\
>>> replaced = my_string.replace("\\", "\\\\")
>>> print(replaced)
asd\\asd\\asd\\\\