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实现的Excel文件读写类
Jul 30 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Python调用Windows命令打印文件
Feb 07 Python
Python接口测试get请求过程详解
Feb 28 Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 Python
十个Python自动化常用操作,即拿即用
May 10 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
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP合并数组函数array_merge用法分析
2017/02/17 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
python基础教程之udp端口扫描
2014/02/10 Python
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
开场白怎么写
2015/06/01 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
高三教师工作总结2015
2015/07/21 职场文书
汽车销售合同文本
2019/08/08 职场文书
mysql函数全面总结
2021/11/11 MySQL
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
Echarts如何重新渲染实例详解
2022/05/30 Javascript