我觉得这可能是一个bug。我无法用单个反斜杠替换字符串中的某个字符:
>>>st = "a&b"
>>>st.replace('&','\\')
'a\\b'
我知道'\'
不是一个合法的字符串,因为\
转义了最后一个'
。
然而,我不想得到'a\\b'
的结果;我希望它是'a\b'
。这是否可能呢?
你正在查看字符串的表示,它本身是一个有效的Python字符串文字。
\\
本身只是一个斜杠,但显示为转义字符,以使值成为有效的Python文本。您可以将该字符串复制并粘贴回Python中,并将生成相同的值。
使用print st.replace('&','\\')
查看实际显示的值,或测试结果值的长度:
>>> st = "a&b"
>>> print st.replace('&','\\')
a\b
>>> len(st.replace('&','\\'))
3