Python反向转义字符

时间:2016-08-11 13:07:00

标签: python string escaping character backslash

我想将转义的字符转换回原始格式:

>>> 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。

3 个答案:

答案 0 :(得分:1)

理想情况下,您应该使用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)

答案 1 :(得分:0)

myString=r"\\10.10.10.10\view\a" 
myString
'\\\\10.10.10.10\\view\\a'
print myString
\\10.10.10.10\view\a

R' ...'是字节串

答案 2 :(得分:0)

打印时\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