python 使用 re 模块操作正则表达式

一、概述

re 模块是 python 官方提供的正则表达式模块,一些常用的方法如下:

re.match(pattern, string, pos, endpos)

string中匹配pattern规则,返回一个匹配对象。

re.search(pattern, string, pos, endpos)

string中查找第一个满足规则pattern的字符串,返回一个匹配对象。

re.findall(pattern, string, pos, endpos)

查找所有满足规则 pattern的字符串,结果将返回一个元组。

re.finditer(pattern, string, pos, endpos)

查找所有满足条件的字符串,并以匹配对象的形式返回一个元组。

re.sub(pattern, repl, string, count)

string中符合规则的字符都替换成replcount表示替换的数量,默认匹配所有,返回被替换后的字符串。

re.subn(pattern, repl, string, count)

sub函数功能一直,只是subn在返回的同时会带上被替换的字符串数量。

以上所有函数中的 posendpos 均表示在 [pos, endpos)下标范围内匹配,下标索引从 0 开始,默认省略表示匹配整个字符串。

二、匹配对象<type "_sre.SRE_Match">

re.match()re.search()方法都返回一个匹配对象<type "_sre.SRE_Match">,常用的方法为:

2.1 group()

返回匹配成功的字符串。

2.2 start() 和 end()

匹配成功后返回匹配到的字符串的开始下标和结束下标。

2.3 span()

以元组的方式返回开始下标和结束下标。

2.4 groups()

返回所有匹配到的分组。

三、示例

3.1 match 方法和匹配对象

3.2 search 方法

3.3 find_all 方法

3.4 finditer 方法

3.5 分组

3.6 替换

其中,要替换的字符也可以是一个函数,将会把匹配到的字符串以匹配对象类型为形参调用指定函数:

最后的结果:

发表评论