有人知道如何在Python中用\\
替换所有的\
吗?我已经尝试过:
re.sub('\','\\',string)
但由于转义序列导致它出现问题。有人知道我的问题的答案吗?
您只需要在字符串中转义反斜杠:(此外,不需要使用正则表达式)
>>> s = "cats \\ dogs"
>>> print s
cats \ dogs
>>> print s.replace("\\", "\\\\")
cats \\ dogs
你应该做:
re.sub(r'\\', r'\\\\', string)
r'\'
是不合法的。r''
)字符串,因为许多操作都需要反斜杠。你需要使用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
您应该转义反斜杠,而且对于这个简单的操作,您不需要使用正则表达式:
>>> my_string = r"asd\asd\asd\\"
>>> print(my_string)
asd\asd\asd\\
>>> replaced = my_string.replace("\\", "\\\\")
>>> print(replaced)
asd\\asd\\asd\\\\
r'\'
不是有效的。 - JBernardostring.replace('\\',r'\\')
。 - John La Rooy