为什么 Python 中的原始字符串 (r-strings) 不能以反斜杠结尾?

pythonprogrammingserver side programming更新于 2023/11/29 7:30:00

r-strings 中的 r 表示原始字符串。字符串文字可以选择以字母"r"或"R"作为前缀;这样的字符串称为原始字符串,并使用不同的规则来解释反斜杠转义序列。

当存在"r"或"R"前缀时,反斜杠后面的字符将不加更改地包含在字符串中,并且所有反斜杠都保留在字符串中。例如,字符串文字 r"\n" 由两个字符组成 -

  • 反斜杠和
  • 小写的"n"。

字符串引号可以用反斜杠转义,但反斜杠保留在字符串中;例如,r""" 是一个由两个字符组成的有效字符串文字 −

  • 一个反斜杠和
  • 一个双引号;

r"" 不是有效的字符串文字。具体来说,原始字符串不能以单个反斜杠结尾。单个反斜杠后跟换行符将被解释为这两个字符是字符串的一部分,而不是行延续。

对于 Windows 路径名,Windows 系统调用也接受正斜杠 −

f = open("/mydir/demo.txt")

DOS 命令的路径名 −

dir = r"\this\is\my\dos\dir" ""
dir = r"\this\is\my\dos\dir\ "[:-1]
dir = "\this\is\my\dos\dir"

相关文章