python五十九课——正则表达式的拓展内容

Posted Hank

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python五十九课——正则表达式的拓展内容相关的知识,希望对你有一定的参考价值。


演示正则表达式的拓展内容:
函数:
finditer(regex,string,[flags=0]):
参数:和match、search、findall一样理解
功能:
将所有匹配的数据封装为一个一个的match对象,
然后以iterator返回
import re
str1 = i love shanghai shanghai shanghai so much
regex = shanghai
it = re.finditer(regex,str1)
print(it,type(it))

‘‘‘
iterator(迭代器对象)不能直接被len()所执行,否则报错:TypeError
但是我们可以将其先装换为容器对象(list、tuple...)可以被len()所执行了
‘‘‘
print(len(it))
print(len(list(it)))


‘‘‘
使用遍历的思想去访问iterator中的元素
‘‘‘
for i in it:
    print(i)
    print(type(i))
    print(i.group())

#迭代器对象中的内容只能被使用一次,不可逆;否则报错:StopIteration
print(next(it))
print(next(it))
print(next(it))
print(next(it)) #报错


‘‘‘
思考:可不可以使用while循环来实现遍历iterator对象的操作?
‘‘‘
while 1:
    try:
        matchobj=next(it)
        print(matchobj)
        print(matchobj.group())
    except:
        break

以上是关于python五十九课——正则表达式的拓展内容的主要内容,如果未能解决你的问题,请参考以下文章

python五十八课——正则表达式(替换)

第五十九课 树到二叉树的转换

第五十九课 Hadoop入门介绍

python五十八课——正则表达式(切割)

Python第十九课Django缓存,信号,序列化,抽屉页面分析

python五十七课——正则表达式(多个字符)