演示正则表达式的拓展内容:
函数:
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五十九课——正则表达式的拓展内容的更多相关文章

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

    替换:sub(regex,repl,string,count,[flags=0]): 替换数据,返回字符串(已经被替换完成后的内容)subn(regex,repl,string,count,[flag ...

  2. python五十八课——正则表达式(分组)

    演示正则中的替换和切割操作:在这之前我们先学习一个分组的概念: 分组:在正则中定义(...)就可以进行分组,理解为得到了一个子组好处:1).如果正则中的逻辑比较复杂,使用分组就可以优化代码的阅读性(更 ...

  3. python五十六课——正则表达式(常用函数之match)

    函数:match(regex,string,[flags=0])参数:regex:就是正则表达式(定义了一套验证规则)string:需要被验证的字符串数据flags:模式/标志位,默认情况下(不定义) ...

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

    切割:split(regex,string):返回一个列表对象 import re str1='i love shenzhen so much' regex=r' +?' lt=re.split(re ...

  5. python五十六课——正则表达式(常用函数之findall)

    4).函数:findall(regex,string,[flags=0]): 参数: 和match.search一样理解 功能: 将所有匹配成功的子数据(子串),以列表的形式返回: 如果一个都没有匹配 ...

  6. python五十六课——正则表达式(常用函数之search())

    函数:search(regex,string,[flags=0]):参数:和match一样理解功能:从头开始匹配字符串中的数据,如果头不匹配继续往后尝试匹配,直到有第一个匹配成功的子数据,立即返回一个 ...

  7. python五十六课——正则表达式(常用函数之compile())

    2).compile(regex,[flags=0]):返回一个Pattern对象(认为:它内部已经封装了一套regex和flags) 可以再通过Pattern对象继续调用match函数(此时只需要传 ...

  8. python第二十九课——文件读写(复制文件)

    自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb ...

  9. python第二十九课——文件读写(读取读取中文字符)

    演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱 ...

随机推荐

  1. javascript变量提升详解

    js变量提升 对于大多数js开发者来说,变量提升可以说是一个非常常见的问题,但是可能很多人对其不是特别的了解.所以在此,我想来讲一讲. 先从一个简单的例子来入门: a = 2; var a; cons ...

  2. Python程序每日一练习

    问题一:做为Apple Store App独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用Python如何生成200个激活码(或者优惠券)? 简介:通用唯一识别码(英语:Unive ...

  3. TopK

    网易面试挂了,伤心. 一面面试官不是搞技术的,二面面试官搞ios,全程不问JVM,并发的知识,运气真差 而且手撸代码硬伤,没得编译 准备先在IDE敲一遍,在再纸上面写一遍. package com.q ...

  4. ajax与文件上传

    一.ajax ajax(Asynchronous JavaScript And XML):异步JavaScript和XML,即使用JavaScript语句与服务器进行异步交互,传输的数据为XML(也可 ...

  5. Shell 文件测试运算符

    文件测试运算符 文件测试运算符用于检测 Unix 文件的各种属性. 属性检测描述如下: 操作符 说明 举例 -b file 检测文件是否是块设备文件,如果是,则返回 true. [ -b $file ...

  6. Java基础——Ajax(三)

    Ajax 中文乱码问题(分两种情况) 1.对于Ajax  发的 post请求,服务端只需要 : request.setCharacterEncoding("utf-8"); 2.对 ...

  7. Is the “*apply” family really not vectorized?

    Question: So we are used to say to every R new user that "apply isn't vectorized, check out the ...

  8. APP如何进行通信的

    什么是B/S架构(Browser/server):浏览器和服务器架构

  9. 纯css实现元素下出现横线动画(background-image)

    效果图: html: <div class='site_bar'>首页</div> css: .site_bar{ background-image : linear-grad ...

  10. 根据需要扩展java中的ThreadPoolExecutor

    经常被重写的三个方法 ThreadPoolExecutor是可扩展的,通过查看源码可以发现,它提供了几个可以在子类化中改写的方法:beforeExecute,afterExecute,terminat ...