我想將轉義字符轉換回原來的形式:Python的反向轉義字符
>>> myString="\\10.10.10.10\view\a"
>>> myString
'\\10.10.10.10\x0biew\x07'
>>>desiredString=fun(myString)
>>>print desiredString
'\\10.10.10.10\view\a'
我研究了很多,但沒有找到 我使用python2.6的解決方案。
我想將轉義字符轉換回原來的形式:Python的反向轉義字符
>>> myString="\\10.10.10.10\view\a"
>>> myString
'\\10.10.10.10\x0biew\x07'
>>>desiredString=fun(myString)
>>>print desiredString
'\\10.10.10.10\view\a'
我研究了很多,但沒有找到 我使用python2.6的解決方案。
myString=r"\\10.10.10.10\view\a"
myString
'\\\\10.10.10.10\\view\\a'
print myString
\\10.10.10.10\view\a
R '...' 是字節串
不完全。 'r'...''是一個原始字符串文字。在Python 2中,所有非Unicode字符串都是字節字符串。 –
的\v
和\a
是在打印時解釋爲特價字符。別擔心,只需添加另一個反斜槓即可避免此問題。
>>> myString="\\10.10.10.10\\view\\a"
>>> print(myString)
\10.10.10.10\view\a
編輯: 或者使用repr:
>>> myString=r"\\10.10.10.10\view\a"
>>> print myString
\\10.10.10.10\view\a
我正在從服務器讀取myString,並且在分配時無法編輯。也 >>> repr(myString) 「'\\\\ 10.10.10.10 \\ x0biew \\ x07'」 –
是的,我雖然沒有。然後@ BPL的答案是做到這一點的唯一方法。 –
理想情況下,你應該使用Python內置的字符串函數或解析正確輸入數據,所以你會避免這些後轉換。事實上,在所有不鼓勵這些定製的解決方案,但在這裏你去:
def fun(input_str):
cache = {
'\'':"\\'",
'\"':'\\"',
'\a':'\\a',
'\b':'\\b',
'\f':'\\f',
'\n':'\\n',
'\r':'\\r',
'\t':'\\t',
'\v':'\\v'
}
return "".join([cache.get(m,m) for m in list(input_str)])
tests = [
"\\10.10.10.10\view\a",
"\'",
'\"',
'\a',
'\b',
'\f',
'\n',
'\r',
'\t',
'\v'
]
for t in tests:
print repr(t)," => ",fun(t)
的可能的複製[?我如何取消逃避蟒蛇反斜線轉義字符串(http://stackoverflow.com/questions/1885181/how-do-i-un-escape-a-backslash-escaped-string-in-python) –