Nik*_*rez 113 python string syntax literals rawstring
我第一次看到它用于构建跨多行的正则表达式作为方法参数re.compile(),所以我认为它r代表RegEx.
例如:
regex = re.compile(
r'^[A-Z]'
r'[A-Z0-9-]'
r'[A-Z]$', re.IGNORECASE
)
Run Code Online (Sandbox Code Playgroud)
那么r在这种情况下意味着什么呢?我们为什么需要它?
Seb*_*olm 150
这r意味着将字符串视为原始字符串,这意味着将忽略所有转义码.
举个例子:
'\n'将被视为换行符,同时r'\n'将被视为\后跟的字符n.
当存在
'r'或'R'前缀时,字符串中包含反斜杠后面的字符不会更改,并且所有反斜杠都保留在字符串中.例如,字符串文字r"\n"由两个字符组成:反斜杠和小写字母'n'.字符串引号可以使用反斜杠进行转义,但反斜杠仍保留在字符串中; 例如,r"\""是一个有效的字符串文字,由两个字符组成:反斜杠和双引号;r"\"不是有效的字符串文字(即使原始字符串不能以奇数个反斜杠结尾).具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符).另请注意,后跟换行符的单个反斜杠被解释为字符串的一部分,而不是行连续符.
来源:Python字符串文字
Nat*_*ate 28
这意味着逃避不会被翻译.例如:
r'\n'
Run Code Online (Sandbox Code Playgroud)
是一个带反斜杠后跟字母的字符串n.(没有r它将是换行符.)
b确实代表字节字符串,并在Python 3中使用,其中字符串默认为Unicode.在Python 2.x中,默认情况下字符串是字节字符串,您可以使用它u来表示Unicode.