可能重复:
why can’t I end a raw string with a \不应该r''是python中的有效字符串值吗?
鉴于r'\\'
相当于'\\\\'
,为什么r'\'
不等同于'\\'
?
我得到了我的python3.2什么
print(r'\')
File "<stdin>", line 1
print(r'\')
^
SyntaxError: EOL while scanning string literal
可能重复:
why can’t I end a raw string with a \不应该r''是python中的有效字符串值吗?
鉴于r'\\'
相当于'\\\\'
,为什么r'\'
不等同于'\\'
?
我得到了我的python3.2什么
print(r'\')
File "<stdin>", line 1
print(r'\')
^
SyntaxError: EOL while scanning string literal
你不能有一个反斜杠作为一个原始字符串,除非它是偶数反斜杠的一部分的最后一个字符;它逃脱了收盘报价。
比较这对:
>>> r'\ '
'\\ '
从string literal documentation:
当
'r'
或'R'
前缀存在时,以下反斜杠一个字符包含不改变该串中,并且所有的反斜线留在字符串中。例如,字符串文字r"\n"
由两个字符组成:反斜杠和小写'n'
。字符串引号可以用反斜线转义,但反斜杠保留在字符串中;例如,r"\""
是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\"
不是有效的字符串字面值(即使原始字符串不能以奇数个反斜杠结尾)。具体而言,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义下面的引号字符)。
哦,我明白了,否则有没有办法在原始字符串中包含'''。谢谢。 – updogliu
@updogliu:基本上,你只能通过使用双引号('r“”')或三引用原始文本('r'''string')来包含*只是一个'''字符(不带反斜杠) ''或'r'“”string“”“')。 –
我也有同样的问题:http://stackoverflow.com/questions/11168076/why-cant-i-end-a-raw-string-with-a –