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

马谦马谦马谦 2017年10月14日23:33:14 2
文章最后编辑于:2017-11-27 21:57:38

一、概述

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 替换

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

最后的结果:

本文共执行41次查询,耗时0.277秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: