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中运行并行任务技巧
Feb 26 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
Django中多种重定向方法使用详解
Jul 17 Python
python 实现二维列表转置
Dec 02 Python
python3.6使用SMTP协议发送邮件
May 20 Python
使用python实现名片管理系统
Jun 18 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
Python高并发解决方案实现过程详解
Jul 31 Python
python实现经纬度采样的示例代码
Dec 10 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 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定界符
2014/06/19 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
FCK调用方法..
2006/12/21 Javascript
转一个日期输入控件,支持FF
2007/04/27 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
便捷提取python导入包的属性方法
2018/10/15 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
护理专业自荐信范文
2014/02/26 职场文书
委托书的格式
2014/08/01 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
人民币使用说明书
2019/04/17 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
Java详细解析==和equals的区别
2022/04/07 Java/Android
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android