我首先看到它用作跨多行构建正则表达式的方法参数re.compile()
,所以我假设它r
代表RegEx。
例如:
regex = re.compile(
r'^[A-Z]'
r'[A-Z0-9-]'
r'[A-Z]$', re.IGNORECASE
)
那么r
在这种情况下意味着什么呢?我们为什么需要它?
这r
意味着该字符串将被视为原始字符串,这意味着所有转义码都将被忽略。
例如:
'\n'
将被视为换行符,而r'\n'
将被视为\
后跟的字符n
。
如果存在
'r'
或'R'
前缀,则字符串中包含反斜杠后面的字符而不会更改,并且所有反斜杠都保留在字符串中。例如,字符串文字r"\n"
包含两个字符:反斜杠和小写字母'n'
。可以使用反斜杠对字符串引号进行转义,但是反斜杠仍保留在字符串中;例如,r"\""
是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\"
不是有效的字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)。还要注意,单个反斜杠后跟换行符被解释为这两个字符是字符串的一部分,而不是行的延续。
来源:Python字符串文字
问题内容: 在python源代码中,我偶然发现在类似如下的字符串之前有一个小b: 我知道表示unicode字符串的前缀和原始字符串文字的前缀。 它看起来像一个没有任何前缀的纯字符串,它代表什么?它在哪种源代码中有用? 问题答案: 这是Python3 bytes 文字。在Python 2.5和更早版本中,此前缀不存在(它等效于2.x的纯字符串,而3.x的纯字符串等效u于2.x中带有前缀的文字)。在P
问题内容: 我在阅读$ _SESSION [‘username’]进入SQL查询之前是否需要转义? 它说:“无论源如何,都需要对传递给sql查询的每个字符串进行转义”。现在我知道类似这样的事情是非常基本的。Google搜索显示超过20,000个结果。仅Stackoverflow就有20页的结果,但是没有人实际解释转义字符串是什么或如何转义。只是假设。你能帮助我吗?我想学习,因为我一如既往地使用PH
问题内容: 在问这个问题时,我意识到我对原始字符串不了解很多。对于自称是Django培训师的人来说,这很糟糕。 我知道什么是编码,而且我知道自从得到以来,它独自做什么。 但是究竟是什么呢?它产生什么样的字符串? 最重要的是,该怎么办? 最后,有没有可靠的方法可以从Unicode字符串返回到简单的原始字符串? 嗯,顺便说一句,如果你的系统和文本编辑器字符集设置为UTF-8,u’‘实际上有什么作用吗?
问题内容: 是的,总之,我想知道为什么我在我的键和值前面看到au。 我正在渲染表格。该表格具有用于特定标签的复选框和用于IP地址的一个文本字段。我正在创建一个字典,其键为标签,这些键在list_key中进行了硬编码,并且字典的值取自表单输入(list_value)。字典已创建,但对于某些值,其前面带有u。这是字典的示例输出: 有人可以解释我在做什么错。当我在pyscripter中模拟类似方法时,我
问题内容: 显然,以下是有效的语法 我想知道: 这是什么b字在前面的字符串是什么意思? 使用它有什么作用? 在什么情况下可以使用它? 我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它指出b用来表示字符串是二进制的,而不是是要从版本兼容的代码,当迁移到PHP 6时。我认为这不适用于Python。 我确实在Python站点上找到了有关使用相同语法的字符将字符串指定为的文档。不幸的是,它在
由于是16位,我猜这里的“Unicode”是指UTF-16,但我一点也不确定。 更新:我注意到UTF-16的维基页面上说“Unicode”是我们现在所知道的UCS-2的旧术语。然而,它也说Java现在使用UTF-16。因此,我仍然怀疑JNI文档中的“Unicode”是指标准的UTF-16,但我通常不使用JNI甚至Java,所以我希望有人觉得权威来插话。
问题内容: 和之间有什么区别?这部分是什么意思?Python文档的哪一章涵盖了该主题? 问题答案: 前导的转义序列意味着接下来的两个字符被解释为字符代码的十六进制数字,因此等于-即小而小写的小写字符。 转义序列记录在Python文档的此处的简短表格中。
问题内容: 如果我从命令行运行,则截至2017年8月24日的最后一项是 上面在软件包版本中反映的构建字符串的含义是什么?这是软件包所需的python interpereter的最低版本吗? 问题答案: 该程序包的构建字符串()的第一部分告诉您该程序包可用于的Python解释器的确切版本。最有可能的,也有其他包的Python(其他版本,等)。第二部分(下划线之后)告诉您此软件包的内部版本号。当构建配