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对象。这在对每次返回的对象进行比较复杂的操作时比较有用。