ITEEDU

2. re模块的基本函数

2.1使用compile加速

2.2 match和search

2.3 finditer

2.4 字符串的修改与替换

2.3 finditer

finditer( rule , target [,flag]  )

参数同findall

返回一个迭代器

finditer函数和findall函数的区别是,findall返回所有匹配的字符串,并存为一个列表,而finditer则并不直接返回这些字符串,而是返回一个迭代器。关于迭代器,解释起来有点复杂,还是看看例子把:

>>> s=’111 222 333 444’
>>> for i in re.finditer(r’\d+’ , s ):
print i.group(),i.span() #打印每次得到的字符串和起始结束位置

结果是

111 (0, 3)
222 (4, 7)
333 (8, 11)
444 (12, 15)

简单的说吧,就是finditer返回了一个可调用的对象,使用 for i in finditer()的形式,可以一个一个的得到匹配返回的 Match对象。这在对每次返回的对象进行比较复杂的操作时比较有用。