2

可能重复:
为什么我不能用 \ 结束原始字符串

给定r'\\'等于'\\\\',为什么r'\'不等于'\\'

我在 python3.2 上得到的是

print(r'\')
  File "<stdin>", line 1
    print(r'\')
              ^
SyntaxError: EOL while scanning string literal
4

1 回答 1

11

您不能将反斜杠作为原始字符串中的最后一个字符,除非它是偶数个反斜杠的一部分;它逃脱了结束语。

将此与以下内容进行比较:

>>> r'\ '
'\\ '

字符串文字文档

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

于 2012-10-27T09:17:25.427 回答