2012-12-31 123 views
0

爲了支持乳膠中的特殊字符,我們應該在特殊字符之前放置單斜槓(例如:\ &),但是如果我用單斜槓替換(\ &),python會插入2個斜線。Python中的特殊字符問題

input1 = "managing & director #" 
changed_val = input1.replace("&","\&").replace("#","\#") 

print changed_val 
output:-managing \& director \# 

如果我打印變量它顯示單斜線但內部變量值包括2個斜槓(在結束時)。

請告知如何只需添加一個單斜槓在Python這樣我就可以在乳膠

或任何使用該字符串的特殊字符替換的latix

回答

4

它顯示爲2斜線因爲Python也使用用斜線表示特殊字符,所以要在變量中顯示斜線,需要在斜線前面顯示斜線。

這裏是一個交互式會話爲例:

>>> s = "a string" 
>>> s 
'a string' 
>>> print s 
a string 
>>> s = "a \\string" 
>>> s 
'a \\string' 
>>> print s 
a \string 
>>> len(s) 
9 

底線:你沒有問題。要確認,請檢查字符串的長度。

+0

也許使用原始字符串在這裏也可能有用! –

+0

是的,當我檢查其長度只顯示兩個。但是,當這個特殊的字符被乳膠使用時,它的創建問題。它不接受兩個\與&。請告知 –

+0

我將使用原始字符串Thomas Orozco。如果不行的話,我會向你們求助。謝謝你的時間。 –

0

運行這個,看看發生了什麼:

>>> print changed_val 
managing \& director \# 
>>> assert changed_val == r'managing \& director \#' 
>>> changed_val 
"managing \\& director \\#" 
>>> print repr(changed_val) 
"managing \\& director \\#" 

當您鍵入changed_val到控制檯,它等同於打字print repr(changed_val)repr也是報價出現的原因。

+0

嗨,埃裏克,我明白這一點。我只想用斜線將它們保存在我的數據庫中,因爲我在乳膠中使用了該值。而乳膠不允許雙斜槓。可能嗎 ? –