有没有人知道如何在python中用\
替换所有\\
?
我试过了:
re.sub('\','\\',string)
但由于逃脱序列,它将其搞砸了。 有谁知道我问题的问题?
答案 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\\\\