python 2.7正则上篇

本文详细介绍了Python中的re模块,包括compile、match、search、findall、finditer、split、sub和subn等函数的用法,并通过实例展示了如何在字符串中进行正则匹配、搜索、替换和分割操作。了解这些内容有助于提升Python正则表达式的运用能力。
摘要由CSDN通过智能技术生成

re模块详解

re模块所包含的所有函数如下图:

compile

功能介绍

根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。可以提高正则的匹配速度,重复利用正则表达式对象。

用法介绍

函数原型:re.compile(pattern[, flag])

参数解释:pattern为要编译的正则表达式,flag为前文图中的标志位。

flag不同值对应的解释如下图:

例子

匹配字符串Myh0St所有字符,不忽略大小写与忽略大小写的区别

后面的例子我们将都是用这个函数来编译正则,所以后面的函数原型都是基于这个来展示。

match

功能介绍

用于查找字符串的头部(也可以指定起始位置),它是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。

用法介绍

函数原型:match(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

使用match函数成功后会返回一个对象,该对象包含一下功能:

group([group1, …]) 方法用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用 group() 或 group(0);

start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引),参数默认值为 0;

end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1),参数默认值为 0;

span([group]) 方法返回 (start(group), end(group))。

例子

匹配myh0st中的字符以及从索引3和4开始匹配

search

功能介绍

用于查找字符串的任何位置,它也是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。

用法介绍

函数原型:search(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

如果匹配成功返回一个match对象,如果不成功则返回None

例子

搜索myh0st1中的数字

findall

功能介绍

上面的 match 和 search 方法都是一次匹配,只要找到了一个匹配的结果就返回。然而,在大多数时候,我们需要搜索整个字符串,获得所有匹配的结果。

用法介绍

函数原型:findall(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

findall 以列表形式返回全部能匹配的子串,如果没有匹配,则返回一个空列表。

例子

搜索myh0st234myh0st中的所有数字

finditer

功能介绍

finditer 方法的行为跟 findall 的行为类似,也是搜索整个字符串,获得所有匹配的结果。但它返回的是一个match的对象。

用法介绍

函数原型:finditer(string[, pos[, endpos]])

参数解释:string为匹配用的原始字符串,pos为文本中正则表达式开始搜索的索引,endpos文本中正则表达式结束搜索的索引

finditer返回一个顺序访问每一个匹配结果(Match 对象)的迭代器。

例子

搜索myh0st234myh0st中的所有数字

split

功能介绍

split 方法按照能够匹配的子串将字符串分割后返回列表

用法介绍

函数原型:split(string[, maxsplit])

参数解释:string为匹配用的原始字符串,maxsplit 用于指定最大分割次数,不指定将全部分割。

split 以列表形式返回全部能匹配的子串,如果没有匹配,则返回一个空列表。

例子

以数字串分割myh0st234myh0st

sub

功能介绍

sub 方法用于使用正则替换字符串中符合条件的字符。

用法介绍

函数原型:sub(repl, string[, count])

参数解释:repl可以是字符串也可以是函数,string为匹配用的原始字符串, count 用于指定最多替换次数,不指定时全部替换。

如果 repl 是字符串,则会使用 repl 去替换字符串每一个匹配的子串,并返回替换后的字符串,另外,repl 还可以使用 id 的形式来引用分组,但不能使用编号 0;

如果 repl 是函数,这个方法应当只接受一个参数(Match 对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。

sub函数返回替换后的字符串。

例子

用mm替换myh0st234myh0st中的数字串或者用test函数替换

subn

功能介绍

subn 方法跟 sub 方法的行为类似,也用于替换。

用法介绍

函数原型:subn(repl, string[, count])

参数与sub的参数一致

subn返回一个元组,第一个元素是使用sub方法的结果,一个是替换的次数

例子

用mm替换myh0st234myh0st中的数字串或者用test函数替换

在不使用compile的时候,只需要将函数前面加re.以及第一个参数为正则表达式即可,例如:re.search("\d", "myh0st")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值