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

发布于 2024-10-13 11:35:46 字数 234 浏览 4 评论 0原文

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

例如:

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

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

I first saw it used in building regular expressions across multiple lines as a method argument to re.compile(), so I assumed that r stands for RegEx.

For example:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]

So what does r mean in this case? Why do we need it?

, re.IGNORECASE )

So what does r mean in this case? Why do we need it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千鲤 2024-10-20 11:35:46

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

例如:

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

当存在 'r''R' 前缀时,
反斜杠后面的字符是
不加改变地包含在字符串中,
所有反斜杠都保留在
细绳。例如,字符串
文字 r"\n" 由两个组成
字符:反斜杠和
小写'n'。字符串引号可以是
用反斜杠转义,但是
反斜杠保留在字符串中;为了
例如,r"\"" 是一个有效的字符串
由两个字符组成的文字:
反斜杠和双引号; r"\"
不是有效的字符串文字(即使是
原始字符串不能以奇数结尾
的反斜杠)。具体来说,一个原始的
字符串不能以单个结尾
反斜杠(因为反斜杠会
转义以下引号字符)。
另请注意,单个反斜杠
随后的换行符被解释
作为这两个字符的一部分
字符串,而不是续行。

来源:Python 字符串文字

The r means that the string is to be treated as a raw string, which means all escape codes will be ignored.

For an example:

'\n' will be treated as a newline character, while r'\n' will be treated as the characters \ followed by n.

When an 'r' or 'R' prefix is present,
a character following a backslash is
included in the string without change,
and all backslashes are left in the
string. For example, the string
literal r"\n" consists of two
characters: a backslash and a
lowercase 'n'. String quotes can be
escaped with a backslash, but the
backslash remains in the string; for
example, r"\"" is a valid string
literal consisting of two characters:
a backslash and a double quote; r"\"
is not a valid string literal (even a
raw string cannot end in an odd number
of backslashes). Specifically, a raw
string cannot end in a single
backslash (since the backslash would
escape the following quote character).
Note also that a single backslash
followed by a newline is interpreted
as those two characters as part of the
string, not as a line continuation.

Source: Python string literals

雨的味道风的声音 2024-10-20 11:35:46

这意味着转义不会被翻译。例如:

r'\n'

是一个带有反斜杠后跟字母 n 的字符串。 (如果没有 r,它将是一个换行符。)

b 确实代表字节字符串,并在 Python 3 中使用,其中字符串默认为 Unicode。在 Python 2.x 中,字符串默认是字节字符串,您可以使用 u 来指示 Unicode。

It means that escapes won’t be translated. For example:

r'\n'

is a string with a backslash followed by the letter n. (Without the r it would be a newline.)

b does stand for byte-string and is used in Python 3, where strings are Unicode by default. In Python 2.x strings were byte-strings by default and you’d use u to indicate Unicode.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文