用反斜杠bug替换一个字符 - Python

时间:2013-06-25 15:04:20

标签: python string escaping

这对我来说感觉像个错误。我无法用一个反斜杠替换字符串中的字符:

>>>st = "a&b"
>>>st.replace('&','\\')
'a\\b'

我知道'\'不是合法字符串,因为\会转义最后一个'。 但是,我不希望结果为'a\\b';我希望它是'a\b'。这怎么可能?

1 个答案:

答案 0 :(得分:13)

您正在查看字符串表示,它本身就是一个有效的Python字符串文字。

\\本身只是一个斜杠,但显示为转义字符,使值成为有效的Python文字字符串。您可以将该字符串复制并粘贴回Python中,它将生成相同的值。

使用print st.replace('&','\\')查看显示的实际值,或测试结果值的长度:

>>> st = "a&b"
>>> print st.replace('&','\\')
a\b
>>> len(st.replace('&','\\'))
3