【发布时间】:2013-06-25 15:04:20
【问题描述】:
这对我来说就像一个错误。我无法用单个反斜杠替换字符串中的字符:
>>>st = "a&b"
>>>st.replace('&','\\')
'a\\b'
我知道'\' 不是合法字符串,因为\ 转义了最后一个'。
但是,我不希望结果是'a\\b';我希望它是'a\b'。这怎么可能?
【问题讨论】:
这对我来说就像一个错误。我无法用单个反斜杠替换字符串中的字符:
>>>st = "a&b"
>>>st.replace('&','\\')
'a\\b'
我知道'\' 不是合法字符串,因为\ 转义了最后一个'。
但是,我不希望结果是'a\\b';我希望它是'a\b'。这怎么可能?
【问题讨论】:
您正在查看字符串 representation,它本身就是一个有效的 Python 字符串文字。
\\ 本身只是 一个 斜杠,但显示为转义字符以使值成为有效的 Python 文字字符串。您可以将该字符串复制并粘贴回 Python 中,它会产生相同的值。
使用print st.replace('&','\\')查看显示的实际值,或测试结果值的长度:
>>> st = "a&b"
>>> print st.replace('&','\\')
a\b
>>> len(st.replace('&','\\'))
3
【讨论】: