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 相关文章推荐
Python3里的super()和__class__使用介绍
Apr 23 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
简单谈谈python基本数据类型
Sep 26 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
详解Python Matplot中文显示完美解决方案
Mar 07 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
python获取栅格点和面值的实现
Mar 10 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 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设计模式 Singleton(单例模式)
2011/06/26 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
smarty模板数学运算示例
2016/12/11 PHP
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
python实现网页录音效果
2020/10/26 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
C语言中break与continue的区别
2012/07/12 面试题
加多宝凉茶广告词
2014/03/18 职场文书
报关报检委托书
2014/04/08 职场文书
超市创业计划书
2014/09/15 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
医德医风学习心得体会
2016/01/25 职场文书
SQL中的连接查询详解
2022/06/21 SQL Server