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从入门到精通(DAY 1)
Dec 20 Python
Python 序列的方法总结
Oct 18 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Python之文字转图片方法
May 10 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
python 将列表中的字符串连接成一个长路径的方法
Oct 23 Python
Python OpenCV图像指定区域裁剪的实现
Oct 30 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
Flask和pyecharts实现动态数据可视化
Feb 26 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 Python
Python中可变和不可变对象的深入讲解
Aug 02 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
长波有什么东西
2021/03/01 无线电
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
php自定义session示例分享
2014/04/22 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
javascript prototype 原型链
2009/03/12 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
python进阶_浅谈面向对象进阶
2017/08/17 Python
python实现神经网络感知器算法
2017/12/20 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python中作用域的深入讲解
2018/12/10 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
澳洲的服装老品牌:SABA
2018/02/06 全球购物
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
工程地质勘察专业大学生求职信
2013/10/13 职场文书
数控专业自荐书范文
2014/03/16 职场文书
奠基仪式主持词
2014/03/20 职场文书
班风口号
2014/06/18 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
MySQL中一条update语句是如何执行的
2022/03/16 MySQL
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers