演示正则表达式的拓展内容:
函数:
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. 从零搭建生产环境的ghost2.0博客

    当前安装过程是在ghost cli 1.9.2上的,由于ghost更新特别快,我安装我个人博客cmlanche.com的时候还是1.9.1,当时没碰到啥问题,到1.9.2就有一点点不一样了,所以要注意 ...

  2. Python JSON 基本使用

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成, ...

  3. .NET源码中的链表

    .NET中自带的链表是LinkedList类,并且已经直接实现成了双向循环链表. 其节点类LinkedListNode的数据结构如下,数据项包括指示到某个链表的引用,以及左,右节点和值. public ...

  4. IOS 获取的时间显示为NAN 解决方法

    var regTime= item.BeginDate.replace(/\-/g, "/"); ------ item.BeginDate 我的日期年月日的    (/\-/g, ...

  5. yapi部署文档

    windows 下 yapi部署文档 安装nodejs 安装mongodb 安装yapi 介绍 随着 web 技术的发展,前后端分离成为越来越多互联网公司构建应用的方式.前后端分离的优势是一套 Api ...

  6. 纯css抖动效果

    HTML: <button class="shake">按钮</button> CSS: .shake{ width: 120px; height: 33p ...

  7. 【代码笔记】Web-JavaScript-JavaScript用法

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  8. 关于Android studio的安装和配置问题

    一.Android studio的安装 我们可以从中文社区http://www.android-studio.org/下载Android studio最新版本,然后点击安装即可. 之后我们直接运行an ...

  9. springcloud 入门 7 (zuul路由网关)

    Zuul简介: Zuul的主要功能是路由转发和过滤器.路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务.zuul默认和Ribbon结合实现了 ...

  10. Linux Mint Mate 常用

    Linux Mint基于Ubuntu  Mate 桌面版据说资源占用较少 http://mirrors.tuna.tsinghua.edu.cn/linuxmint-cd/stable/17.3/li ...