当前位置: 首页 > 面试题库 >

python re.compile(r'模式标志')中的“ r”是什么意思?

司马作人
2023-03-14
问题内容

我正在阅读http://docs.python.org/2/library/re.html。按此在蟒re.compile(以下简称“R”
- [R “模式标志”)是指原始字符串符号:

解决方案是将Python的原始字符串表示法用于正则表达式模式。反斜杠在以’r’开头的字符串文字中不会以任何特殊方式处理。所以r“ \
n”是一个包含’'和’n’的两个字符的字符串,而“ \
n”是一个包含换行符的一个单字符的字符串。通常,模式将使用此原始字符串表示法在Python代码中表示。

可以这样说吗?

re.compile( r pattern)表示“模式”是一个正则表达式,而re.compile(pattern)表示“模式”是一个精确匹配?


问题答案:

如前所述@PauloBur字符串前缀与regex并不特别相关,但通常与Python中的字符串有关。

普通字符串使用反斜杠字符作为特殊字符(如换行符)的转义字符:

>>> print('this is \n a test')
this is 
 a test

r前缀告诉解释不这样做:

>>> print(r'this is \n a test')
this is \n a test
>>>

这在正则表达式中很重要,因为您需要使用反斜杠将其re完整保留到模块中-
特别是\b在单词的开头和结尾特别匹配空字符串。re需要使用字符串\b,但是普通的字符串解释'\b'会转换为ASCII退格字符,因此您需要显式转义反斜杠('\\b'),或者告诉python这是原始字符串(r'\b')。

>>> import re
>>> re.findall('\b', 'test') # the backslash gets consumed by the python string interpreter
[]
>>> re.findall('\\b', 'test') # backslash is explicitly escaped and is passed through to re module
['', '']
>>> re.findall(r'\b', 'test') # often this syntax is easier
['', '']


 类似资料:
  • 问题内容: 以下语句的含义是什么? 我想我已经听说过,和,但从来没有听说过这一点。 问题答案: 背景: 在Python中,有两个内置函数可将对象转换为字符串:vs .。应该是一个易于理解的友好字符串。应该包含有关对象内容的详细信息(有时,它们会返回相同的内容,例如整数)。按照惯例,如果有一个Python表达式可以转换为==的另一个对象,则将返回这样的表达式,例如 如果返回表达式对对象没有意义,则应

  • 有人知道r中的^符号是什么意思吗? 下面是上下文:

  • 问题内容: 我在golang的zlib / reader.go文件中找到了很多代码片段。这是什么意思? https://golang.org/src/compress/zlib/reader.go 的PS源代码和。 io:https: //golang.org/src/io/io.go平板:https : //golang.org/src/compress/flate/inflate.go 问题答

  • 我在Tomcat中调试得到了这个。 它似乎是一个java字节码描述符,但我已经查找了引用https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html而且没有字段描述符“R”。 任何答案都将不胜感激!

  • 问题内容: 我在带有R版本3.5.1的Ubuntu 18.04计算机上,通过此链接安装。我试图安装CRAN包 rJava ,这是我做下面的方式(如看到这里): 但是,我得到这个: 但是当我尝试: 我得到: 如何克服这个问题呢?基本上,我需要安装才能安装和使用。在Ubuntu 16.04中,我没有任何问题。 编辑: 显然,应由提供。我确实已经安装了最新版本,为什么我仍然看到错误? 问题答案: API

  • 问题内容: Java 中回车和换页的含义是什么?谁能举一个简短的例子说明何时必须使用这些类型的符号? 我不知道上面是什么。 我得到的输出是: 我得到了换行和换行的提示,并带有一个框。 问题答案: 您很少在现代应用程序中单独使用它们中的任何一个。 (回车)的含义是, 如果 您熟悉老式的手动打字机:它将“托架”(送纸的纸卷)移回到行的开头。在终端(或类似终端)上,它将输出点移回该行的开头,而无需向下移