8

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

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

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

4

1 回答 1

15

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

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

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

>>> st = "a&b"
>>> print st.replace('&','\\')
a\b
>>> len(st.replace('&','\\'))
3
于 2013-06-25T15:05:01.223 回答