【问题标题】:Escape characters in raw Python string [duplicate]原始Python字符串中的转义字符[重复]
【发布时间】:2013-08-01 22:24:37
【问题描述】:

我的印象是,在 Python 中,写为 r'this is a raw string' 的原始字符串会省略任何转义字符,并准确打印引号之间的内容。我的问题是,当我尝试print r'\' 时,我得到SyntaxError: EOL while scanning string literal。不过,print r'\n' 可以正确打印 \n

【问题讨论】:

    标签: python string syntax


    【解决方案1】:

    引用the documentation:

    当存在'r''R' 前缀时,反斜杠后面的字符将原样包含在字符串中,并且所有反斜杠都保留在字符串中。例如,字符串文字 r"\n" 由两个字符组成:一个反斜杠和一个小写字母 'n'字符串引号可以用反斜杠转义,但反斜杠保留在字符串中;例如,r"\"" 是由两个字符组成的有效字符串文字:反斜杠和双引号; r"\" 不是有效的字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义后面的引号字符)。

    添加了我的重点。

    因此,原始字符串确实将 some 含义附加到反斜杠上,但仅在涉及引号的地方。

    【讨论】:

      【解决方案2】:

      来自 Python 文档:

      如果我们将字符串文字设为“原始”字符串,\n 序列不会转换为换行符,但行尾的反斜杠和源中的换行符都作为数据包含在字符串中.

      你对原始字符串有错误的想法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-23
        • 2017-03-24
        相关资源
        最近更新 更多