Python 常用模块 re 使用方法详解


Posted in Python onJune 06, 2019

一.re模块的查找方法:

1.findall   匹配所有每一项都是列表中的一个元素

import re
ret = re.findall('\d+','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag
# ret = re.findall('\d','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag
# print(ret)

2.search  只匹配从左到右的第一个,等到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果

import re
ret = re.search('\d+','asd鲁班七号21313')
print(ret) # 内存地址,这是一个正则匹配的结果
print(ret.group()) # 通过ret.group()获取真正的结果

2.1如果没有匹配到,会返回None,使用group会报错

ret = re.search('\d+','asd鲁班七号')
print(ret.group())

 2.2所以这个时候调用我要用一下格式

ret = re.search('\d+','asd鲁班七号')
if ret:
   print(ret.group())

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

ret = re.match('\d+','1233asd鲁班七号21313')
print(ret)

 二.字符串处理扩展

 1.split--切割

s = 'luban|cheng|an|'
print(s.split('|'))
s = 'luban34cheng21an89'
print(re.split('\d+',s))

 2.sub--替换

ret = re.sub('\d+','H','luban34cheng21an89',1)
print(ret)

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

ret = re.subn('\d+','H','luban34cheng21an89')
print(ret)

 三.re模块的进阶

 1.compile 节省你使用正则表达式解决问题的时间,编译正则表达式,编译成字节码,在多次使用的过程中,不会多次编译

ret = re.compile('\d+') # 已经完成编译
print(ret)
res = ret.findall('luban34cheng21an89')
print(res)
res = ret.search('1233asd鲁班七号21313')
print(res.group())

 2.finditer 节省你使用正则表达式解决问题的空间

ret = re.finditer('\d+','1233asd鲁班七号21313')
for i in ret:
  print(i.group())

 四.总结

findall   返回列表,找所有的匹配项
search    匹配就返回一个变量,通过group取匹配到的第一值,不匹配就返回None,group会报错
match     相当于search的正则表达式中加了一个'^'

split     返回列表,按照正则规则切割,默认匹配到的内容会被切掉
sub/subn  替换,按照正则规则去寻找要被替换的内容,subn返回元祖,第二个值是替换的次数

compile   编译一个正则表达式,用这个结果去search,match,fildall,finditer 能够节省时间
finditer  返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值 能够节省内存

以上所述是小编给大家介绍的Python 常用模块 re 使用方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python利用matplotlib库绘制饼图的方法示例
Dec 18 Python
python构建深度神经网络(续)
Mar 10 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
Python读取txt某几列绘图的方法
Oct 14 Python
python-opencv颜色提取分割方法
Dec 08 Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 Python
python函数的作用域及关键字详解
Aug 20 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
python实现杨辉三角的几种方法代码实例
Mar 02 Python
Python比较配置文件的方法实例详解
Jun 06 #Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 #Python
创建Django项目图文实例详解
Jun 06 #Python
Django网络框架之HelloDjango项目创建教程
Jun 06 #Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 #Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 #Python
浅析Python3中的对象垃圾收集机制
Jun 06 #Python
You might like
php新建文件自动编号的思路与实现
2011/06/27 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
给Function做的OOP扩展
2009/05/07 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
浅谈JS继承_借用构造函数 & 组合式继承
2016/08/16 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python 快速排序代码
2009/11/23 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
python实现文本界面网络聊天室
2018/12/12 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
Python3最长回文子串算法示例
2019/03/04 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
python名片管理系统开发
2020/06/18 Python
python中return不返回值的问题解析
2020/07/22 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
中学教师请假制度
2014/02/03 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
战友聚会策划方案
2014/06/13 职场文书
后进生评语大全
2015/01/04 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
国庆节主题班会
2015/08/15 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL