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 ldap实现登录实例代码
Sep 30 Python
python最长回文串算法
Jun 04 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
Django 请求Request的具体使用方法
Nov 11 Python
使用Python函数进行模块化的实现
Nov 15 Python
python实现简单学生信息管理系统
Apr 09 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
python 异步async库的使用说明
May 04 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
thinkPHP查询方式小结
2016/01/09 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
详解python中递归函数
2019/04/16 Python
Python绘图实现显示中文
2019/12/04 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
简述 Python 的类和对象
2020/08/21 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
存储过程的优缺点是什么
2015/01/10 面试题
运动会广播稿30字
2014/01/21 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
防卫过当辩护词
2015/05/21 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书