为什么 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"