Python中的re模块(二)

1. finditer()函数

搜索字符串,返回一个Match对象迭代器(包含匹配的开始和结束的位置)。找到正则匹配的所有子串,把它们作为一个迭代器返回。

格式:

re.finditer(pattern, string, flags=0)

例如:

import re
itext = re.finditer(r'\d+','12 edueduedu44coder deducoder, 11skdh   ds 12')      #匹配所有的数字  
for i in itext:  
    print(i)  
    print(i.group())  
    print(i.span())   #span()返回一个元组包含匹配 (开始,结束) 的位置  

运行结果如下:

<re.Match object; span=(0, 2), match='12'>
12
(0, 2)
<re.Match object; span=(12, 14), match='44'>
44
(12, 14)
<re.Match object; span=(31, 33), match='11'>
11
(31, 33)
<re.Match object; span=(43, 45), match='12'>
12
(43, 45)

2. split()函数

按照能够匹配的子串,将string分割后返回列表。

格式:

re.split(pattern, string)

可以使用re.split来分割字符串,如:re.split(r’\s+', text)将字符串,按空格分割成一个单词列表。

以数字为分割符,将字符串分割:

print(re.split(r'\d+','asas2kdjs4jds5djdfj1djf0'))  

运行结果如下:

['asas', 'kdjs', 'jds', 'djdfj', 'djf', '']

3. sub()函数

使用re替换string中每一个匹配的子串后,返回替换后的字符串。

格式:

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

用-替代,如下:

import re  
text = "aaa,bbb,ccc,ddd"  
print(re.sub(r',', '-', text))  

运行结果如下:

aaa-bbb-ccc-ddd

4. subn()函数

返回替换次数。

格式:

subn(pattern, repl, string, count=0, flags=0)  
  • 解释:用A替换123中的1,结果为A23,repl就是指的A。

把所有的数字替换为A:

print(re.subn('\d','A','1asd2dkjf34'))  

运行结果如下:

('AasdAdkjfAA', 4)
  • subn()不仅返回了替换后的字符串,还返回了替换的次数。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小廖同志_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值