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中splitlines()方法的使用简介
May 20 Python
python微信跳一跳游戏辅助代码解析
Jan 29 Python
Python Logging 日志记录入门学习
Jun 02 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
python基于SMTP协议发送邮件
May 31 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
Python基础之元组与文件知识总结
May 19 Python
Django基础CBV装饰器和中间件
Mar 22 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
python中的随机函数random的用法示例
2018/01/27 Python
python实现QQ批量登录功能
2019/06/19 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
小学教师学期末自我评价
2013/09/25 职场文书
师范生实习自我鉴定
2013/11/01 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
学校对教师的评语
2014/04/28 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
幼师小班个人总结
2015/02/12 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
Python基础之数据结构详解
2021/04/28 Python
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
详解vue中v-for的key唯一性
2021/05/15 Vue.js
如何通过cmd 连接阿里云服务器
2022/04/18 Servers