我第一次看到它用于跨多行构建正则表达式,作为 re.compile()的方法参数,所以我假设 r代表 RegEx。
re.compile()
r
例如:
regex = re.compile( r'^[A-Z]' r'[A-Z0-9-]' r'[A-Z]$', re.IGNORECASE )
那么 r在这种情况下意味着什么? 我们为什么需要它?
这意味着逃逸不会被翻译,例如:
r'\n'
是一个后面跟着字母 n的反斜杠的字符串。(如果没有 r,它将是一个换行符。)
n
b确实代表 byte-string,在 Python3中使用,其中字符串默认为 Unicode。在 Python 2.x 中,字符串默认是字节字符串,您可以使用 u来表示 Unicode。
b
u
r表示将字符串视为原始字符串,这意味着将忽略所有转义代码。
举个例子:
'\n'将被视为换行字符,而 r'\n'将被视为字符 \,然后是 n。
'\n'
\
当出现 'r'或 'R'前缀时, 反斜杠后面的字符是 包含在字符串中, 所有的反斜杠都留在 例如,字符串 字面 r"\n"由两个 字符: 反斜杠和 字符串引号可以是 使用反斜杠转义,但是 反斜杠保留在字符串中; for 例如,r"\""是一个有效的字符串 由两个字符组成的文字: 反斜杠和双引号; r"\" 不是有效的字符串文字(甚至是 原始字符串不能以奇数结尾 )。具体来说,是一个原始的 字符串不能以单个 反斜杠(因为反斜杠 转义下面的引号字符)。 还要注意一个反斜杠 后跟换行符 作为这两个字符的一部分 字符串,而不是行的延续。
'r'
'R'
r"\n"
r"\""
r"\"
资料来源: Python 字符串文字