我有這樣的交互式會話:str.replace加回斜線
>>> str = '192.168.1.1'
>>> str = str.replace('.','\.')
>>> str
'192\\.168\\.1\\.1'
我要出去放是:的192\.168\.1\.1
代替192\\.168\\.1\\.1
我怎樣才能做到這一點?它爲什麼這樣表現?
我有這樣的交互式會話:str.replace加回斜線
>>> str = '192.168.1.1'
>>> str = str.replace('.','\.')
>>> str
'192\\.168\\.1\\.1'
我要出去放是:的192\.168\.1\.1
代替192\\.168\\.1\\.1
我怎樣才能做到這一點?它爲什麼這樣表現?
使用print str
,而不是str
:
>> str = '192.168.1.1'
>>> str = str.replace('.','\.')
>>> str
'192\\.168\\.1\\.1'
>>> print str
192\.168\.1\.1
你的字符串,你希望它是,但一當你剛剛傾倒的對象,Python是它顯示你可以用它來分配的形式給你到另一個字符串 - 這意味着要逃避\
字符。
字符串正是它應該是。額外的斜線只在顯示中顯示,而不是在實際的字符串中。
的原因是,我想,那\。是不是一個有效的轉義序列? –
\是一個轉義字符,所以\要求通過隱藏其轉義字符性質來將\添加到字符串中。
如果你的字符串名稱前使用「打印」,你會看到它如何出現,而不是其實際包含的內容。
重複http://stackoverflow.com/questions/2179493/adding-backslashes-without-escaping-python的 – Cez