正则表达式是系统管理员和开发人员的热门话题。正则表达式用于在单个或多个文件中查找结构化文本或字符串。正则表达式最好的一面是我们可以定义任何我们想在文本中匹配字符串的东西。Python支持并提供了很多正则表达式和相关操作的方法。在本教程中,我们将详细介绍这些正则表达式函数。
导入Re或正则表达式库
为了在python中使用正则表达式,我们需要导入正则表达式库,它被命名为 regular expression
作为 regex
.
import regex
匹配
match函数是将regex模式应用于给定字符串的最流行函数之一。我们将使用 match
函数 pattern
和 string
参数。还有 flags
参数,如果我们不提供 flags
不会有错误。
re.match(PATTERN,STRING,FLAG)
在本例中,我们希望在给定字符串中查找由空格分隔的单词。每个单词提供一个匹配项,这些匹配项将被分组。
line="This is an example about regular expression"matches = re.match('w+',line)matches.group(0)
组
在上一部分中,我们简单地打印了第一组索引
但一行中可能有不止一个单词需要匹配。在正则表达式中称为组。我们可以在一个匹配中匹配多个不同的模式。
在这个例子中,我们将匹配以 T
和 a
分成两组。
line="This is an example about regular expression" matches = re.match('(Tw+).*examples(aw+)',line) matches.group(0) #'This is an example about' matches.group(1) #'This' matches.group(2) #'about'

如我们所见,匹配模式结果被分配到组中。我们可以通过提供关于这些组的索引来获得它们。
搜索
搜索类似于match函数,但主要区别是match查找第一个匹配项,然后停止,但搜索将查找字符串的结尾,如果存在,将查找多个匹配项。的语法 search
功能相同 match
功能。
相关文章: 正则表达式或逻辑交替教程
搜索(模式、字符串、标志)
line="This is an example about regular expression" matches = re.search('(Tw+).*examples(aw+)',line) matches.group(0) #'This is an example about' matches.group(1) #'This' matches.group(2) #'about'
搜索和替换
Python正则表达式函数支持查找给定文本并用新文本替换文本。我们将使用 sub
用于替换的功能。 sub
函数支持以下语法。
re.sub(PATTERN,NEWTEXT,STRING,FLAG)
我们会改变的 regular
用词 unregular
本例中的单词。
line="This is an example about regular expression" matches = re.sub('regular','unregular',line) print(matches)

选项标志
选项标志通常作为最后一个参数提供给相关的regex函数。选项标志通常用于不区分大小写的匹配,解释当前语言环境等。下面是选项标志的列表。
-
re.I
是不区分大小写的匹配 -
re.L
用于当前区域设置 -
re.M
制造$
匹配行尾 -
re.S
制造.
匹配任何字符,包括换行符
不区分大小写
我们可以使用选项标志,以使大小写不敏感的匹配或搜索正则表达式。我们将提供 re.I
作为相关函数的最后一个参数,如下所示。
matches = re.sub('regular','unregular',line,re.I)