猿问

在字符串文字前加“ r”是什么意思?

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


例如:


regex = re.compile(

    r'^[A-Z]'

    r'[A-Z0-9-]'

    r'[A-Z]$', re.IGNORECASE

)

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


莫回无
浏览 1689回答 3
3回答

Qyouu

这r意味着该字符串将被视为原始字符串,这意味着所有转义码都将被忽略。例如:'\n'将被视为换行符,而r'\n'将被视为\后跟的字符n。如果存在'r'or或'R'前缀,则字符串中包含反斜杠后面的字符而不会更改,并且所有反斜杠都保留在字符串中。例如,字符串文字r"\n"包含两个字符:反斜杠和小写字母'n'。可以使用反斜杠对字符串引号进行转义,但反斜杠仍保留在字符串中;例如,r"\""是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\" 不是有效的字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)。特别是,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)。还要注意,单个反斜杠后跟换行符被解释为这两个字符是字符串的一部分,而不是换行符。

慕盖茨4494581

这意味着转义符不会被翻译。例如:r'\n'是一个带有反斜杠的字符串,后跟字母n。(没有r它将是一个换行符。)b确实代表字节字符串,并且在Python 3中使用,默认情况下字符串为Unicode。在Python 2.x中,默认情况下,字符串是字节字符串,您将使用它u来表示Unicode。

Helenr

我试过了。我确实说过:“我很难在文档中寻找答案,因为我不知道它们的正式名称。” -我没有足够的时间去真正地看。你知道,截止日期和东西。:PI仅搜索“ python字符串前缀”,尽管最主要的回答是“词法分析”的链接是第二个结果,但“词法分析”有点使我无法阅读链接的页面,因为听起来像是阅读量很大。
随时随地看视频慕课网APP

相关分类

Python
我要回答