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()
仍然可以处理原始字符串。