在Python中处理字符串中的转义序列

发布于 2021-02-02 23:19:06

有时候,当我从文件或用户那里得到输入时,我会得到一个带有转义序列的字符串。我想以与Python处理字符串文字中的转义序列相同的方式来处理转义序列。

例如,假设myString定义为:

>>> myString = "spam\\neggs"
>>> print(myString)
spam\neggs

我想要一个process执行此操作的函数(我称之为):

>>> print(process(myString))
spam
eggs

该函数可以处理Python中的所有转义序列(在上面的链接的表格中列出),这一点很重要。

Python是否具有执行此操作的功能?

关注者
0
被浏览
75
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    正确的做法是使用“字符串转义”代码对字符串进行解码。

    >>> myString = "spam\\neggs"
    >>> decoded_string = bytes(myString, "utf-8").decode("unicode_escape") # python3 
    >>> decoded_string = myString.decode('string_escape') # python2
    >>> print(decoded_string)
    spam
    eggs
    

    不要使用AST或eval。使用字符串编解码器更加安全。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看