Python3中re.finditer与re.findall函数用法详解

re.finditer(pattern, string[, flags=0])
re.findall(pattern, string[, flags=0])

pattern :自定义要匹配的字符,或者compile 生成的正则表达式对象
string :要匹配的文本内容

findall 返回一个包含所有匹配到的字符的列表,列表类以元组的形式存在。

import re
text = '123.nihao,是的.ni'
pattern = 'ni'
a = re.findall(pattern,text) # findall 得到的是一个列表
print(a)
print(type(a))
print('================')
for i in re.findall(pattern,text):
    print(i)
    print(type(i))

#输出结果
['ni', 'ni']
<class 'list'>
================
ni
<class 'str'>
ni
<class 'str'>

finditer 返回一个可迭代对象

import re
text = '123.nihao,是的.ni'
pattern = 'ni'
a = re.finditer(pattern,text) # finditer 得到的结果是个可迭代对象
print(a)
print(type(a))
print('=======================================')
for i in re.finditer(pattern,text):# i 本身也是可迭代对象,不能直接显示内容,所以下面要使用 i.group()才可以将匹配到的内容显示出来
    print(i)
    print(type(i))
    print(i.group())
    print('*********************************')
    
#输出结果
<callable_iterator object at 0x10ddaddf0>
<class 'callable_iterator'>
=======================================
<re.Match object; span=(4, 6), match='ni'>
<class 're.Match'>
ni
*********************************
<re.Match object; span=(13, 15), match='ni'>
<class 're.Match'>
ni
*********************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值