import re    引用re模块

查找  

  finall:匹配所有,每一项都是列表中的一个元素

  search:只匹配从左到右的第一个,得到的不是直接的结果而是一个变量,通过group方法获取结果,没有匹配到会返回None,使用group会报错

  match:从头开始匹配,相当于search中的正则表达式加上一个^

字符串处理的扩展: 替换 切割

  split  切割

  sub  替换  格式re.sub(旧的,新的,字符串,替换次数)

  subn  返回一个元组,第二个元素是替换的次数

re模块的进阶:时间/空间

  compile  节约你使用正则表达式解决问题的时间  

 ret = re.compile('\d+')   # 已经完成编译了
print(ret)
res = ret.findall('alex83taibai40egon25')
print(res)

  finditer  节省你使用正则表达式解决问题的空间/内存

ret = re.finditer('\d+','alex83taibai40egon25')
for i in ret:
print(i.group())

rearch()  .group()   括号中的数字代表的是去对应分组中的内容

 import re
s = '<a>wahaha</a>' # 标签语言 html 网页
ret = re.search('<(\w+)>(\w+)</(\w+)>',s)
print(ret.group()) # 所有的结果
print(ret.group(1)) # 数字参数代表的是取对应分组中的内容

findall()  中有一个特殊的语法,优先显示正则表达式中()括号的内容

取消分组优先(?:正则表达式)

    ret = re.findall('\d+(?:\.\d+)?','1.234*4')

     print(ret)

关于分组:

  1、对正则表达式来说,有时候我们需要进行分组,来约束某一字符出现的次数(\.[\w]+)? 

  2、对python语言来说,分组可以帮助你更好更精准的找到你真正需要的内容,例<(\w+)>(\d+)<

split

 ret = re.split('\d+','alex83taibai40egon25')
print(ret)
ret = re.split('(\d+)','alex83taibai40egon25aa')
print(ret)

python 与正则表达式 之间的特殊约定

  1、分组命名(?P<这个组的名字>正则表达式)

  2、使用前面的分组,要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致

pattern = '<(?P<tab>\w+)>(\w+)</(?P=tab)>'
ret = re.search(pattern,s)
print(ret

day 17 re模块 正则表达式的更多相关文章

  1. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

  2. 【Python开发】Python之re模块 —— 正则表达式操作

    Python之re模块 -- 正则表达式操作 这个模块提供了与 Perl 相似l的正则表达式匹配操作.Unicode字符串也同样适用. 正则表达式使用反斜杠" \ "来代表特殊形式 ...

  3. 17。3.12---re模块--正则表达式操作指南

    1----python re模块(Regular Expressioin正则表达式)提供了一个与perl等编程语言类似的正则匹配操作,他是一个处理python字符串的强有力的工具,有自己的语法和独立的 ...

  4. s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译

    时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...

  5. re 模块 正则表达式

    re模块(正则表达式)   一.什么是正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它 ...

  6. 第四章: 4.1 logging模块 | 正则表达式

    修改json数据然后写入json文件中 f = open('1234.json','r',encoding='utf-8') data = f.read() data1 = json.loads(da ...

  7. Python3 学习第十四弹: 模块学习六之re模块 + 正则表达式 (转)

    本文转自 AstralWind 的博客:Python正则表达式指南 特来收藏 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有 ...

  8. re模块——正则表达式操作

    一.什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并通过 r ...

  9. re(模块正则表达式)

    re模块(正则) ​ 正则是用一些具有特殊含义的符号组合到一起(成为正则表达式)来描述字符或者字符串的方法,或者说正则就是用来描述一类事物的规则. import re #从字符串中全部查找内容,返回一 ...

随机推荐

  1. 设计模式(九)Bridge模式

    Bridge模式就是将类的功能层次结构和类的实现层次结构连接起来. 类的功能层次结构就是根据实际非抽象类来说的,也就是父类具有基本功能,然后在子类中增加新功能.用于增加新功能. 类的实现层次结构就是根 ...

  2. 修改linux系统history命令的条数和格式

    在一次测试环境遇到的情况,发现服务莫名其妙挂了,以为服务有bug,查了一下午,后来一个同事说,是我把服务关了啊.... 是可忍孰不可忍,原生的history命令,只能看到输入的命令历史,看不到什么时候 ...

  3. Spring Boot WebFlux 2.1.7 中文翻译文档

    1. 前言 从一开始学习 Netty 到 rxjava.Rector,再到 java8 的 CompletableFuture,就深深的为响应式编程着迷,这种区别于传统的顺序式编程,没准未来能在编程世 ...

  4. 关于RocketMQ消息消费与重平衡的一些问题探讨

    其实最好的学习方式就是互相交流,最近也有跟网友讨论了一些关于 RocketMQ 消息拉取与重平衡的问题,我姑且在这里写下我的一些总结. ## 关于 push 模式下的消息循环拉取问题 之前发表了一篇关 ...

  5. net core WebApi——公用库April.Util公开及发布

    前言 在之前鼓捣过一次基础工程April.WebApi后,就考虑把常用的类库打包做成一个公共类库,这样既方便维护也方便后续做快速开发使用,仓库地址:April.Util_github,April.Ut ...

  6. 【gradle使用前篇—Groovy简介】

    Groovy介绍 Groovy是一种动态语言,对它的定义是:Groovy是在java平台上的,具有像Python.Ruby和smalltalk语言特性的灵活动态语言,Groovy保证了这些特性像jav ...

  7. java基础阶段几个面试题

    1.说出你对面向对象的理解 在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想.在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例.面向对象的编程是以 ...

  8. 009.Kubernetes二进制部署kube-apiserver

    一 部署master节点 1.1 master节点服务 kubernetes master 节点运行如下组件: kube-apiserver kube-scheduler kube-controlle ...

  9. 在小程序中使用md5

    使用md5.js的首先你要有md5.js这个文件https://github.com/emn178/js-md5 您也可以使用Bower安装js-md5. bower install md5 对于no ...

  10. 易语言 史诗级Json处理 烁_Json模块!!!!

    大家好,我是键盘上的魔手 * “************************”* “** 欢迎使用烁Json模块 **”* “** 作者:键盘上的魔手 **”* “**  微信号:codervip ...