Python 在字符串文字前面加上“quot;r";什么意思?

Python 在字符串文字前面加上“quot;r";什么意思?,python,string,syntax,literals,rawstring,Python,String,Syntax,Literals,Rawstring,我第一次看到它在跨多行构建正则表达式时用作re.compile()的方法参数,因此我假设r代表RegEx 例如: regex = re.compile( r'^[A-Z]' r'[A-Z0-9-]' r'[A-Z]$', re.IGNORECASE ) r'\n' 那么在这种情况下,r意味着什么呢?我们为什么需要它?这意味着逃避不会被翻译。例如: regex = re.compile( r'^[A-Z]' r'[A-Z0-9-]' r'[A-Z

我第一次看到它在跨多行构建正则表达式时用作
re.compile()
的方法参数,因此我假设
r
代表RegEx

例如:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)
r'\n'

那么在这种情况下,
r
意味着什么呢?我们为什么需要它?

这意味着逃避不会被翻译。例如:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)
r'\n'
是一个带反斜杠的字符串,后跟字母
n
。(如果没有
r
,这将是一条新行。)


b
代表字节字符串,在Python 3中使用,默认情况下字符串为Unicode。在Python2.x中,默认情况下字符串是字节字符串,您可以使用
u
来表示Unicode。

r意味着字符串将被视为原始字符串,这意味着所有转义码都将被忽略

例如:

'\n'
将被视为换行符,而
r'\n'
将被视为字符
\
,后跟
n

当出现
'r'
'r'
前缀时, 反斜杠后面的字符是 包含在字符串中而不进行更改, 所有反斜杠都保留在 一串例如,字符串 文字
r“\n”
由两部分组成 字符:反斜杠和 小写的
'n'
。字符串引号可以是 用反斜杠逃跑了,但是 反斜杠保留在字符串中;对于 例如,
r“\”
是一个有效字符串 由两个字符组成的文本: 反斜杠和双引号;
r“\”
不是有效的字符串文字(即使是 原始字符串不能以奇数结尾 指反斜杠)。具体来说,是指未加工的 字符串不能以单个字符结尾 反斜杠(因为反斜杠 转义以下引号字符)。 还要注意,一个反斜杠 后面跟一个换行符被解释 作为这两个角色的一部分 字符串,而不是作为行的延续


来源:

请注意,在括号内的多行上拆分字符串与字符前缀无关-这只是Python自动字符串连接的一个示例,可用于任何前缀或无前缀。您忘记了这一点:反斜杠“\`不能是最后一个章程,否则扫描时会出现错误
SyntaxError:EOLning字符串文字出现。对于Python3,它是
print(r“Test\new”)
字符串插值,使用
.format()
仍然可以处理原始字符串。