Python re 模块findall() 函数返回值展现方式解析


Posted in Python onAugust 09, 2019

findall 函数:

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有,match 和 search 的区别也很大,可以自行网上查找!

这里主要需要讨论的是其返回值的展现方式,即findall函数根据正则表达式的不同所返回的结果包含的不同信息!

主要包含三种情况:

1. 当给出的正则表达式中带有多个括号时,列表的元素为多个字符串组成的tuple,tuple中字符串个数与括号对数相同,字符串内容与每个括号内的正则表达式相对应,并且排放顺序是按括号出现的顺序。

# 例子,正则表达式里分了两个组
import re
test = '2018年的下半年,9月份, 27日'
pattern = re.compile(r'(\d)+(年|月|日)')
res = pattern.findall(test)
print(res)
# 输出结果: [('8', '年'), ('9', '月'), ('7', '日')]

2. 当给出的正则表达式中带有一个括号时,列表的元素为字符串,此字符串的内容与括号中的正则表达式相对应(不是整个正则表达式的匹配内容)。

# 例子,正则表达式里有一个分组
import re
test = '2018年的下半年,9月份, 27日'
pattern = re.compile(r'\d+(年|月|日)')
res = pattern.findall(test)
print(res)
# 输出结果: ['年', '月', '日']

3. 当给出的正则表达式中不带括号时,列表的元素为字符串,此字符串为整个正则表达式匹配的内容。

# 例子,正则表达式里没有分组
import re
test = '2018年的下半年,9月份, 27日'
pattern = re.compile(r'\d{4}年|\d{1}月|\d{2}日')
res = pattern.findall(test)
print(res)
# 输出结果: ['2018年', '9月', '27日']

4. 同样是前面的 test 数据,要匹配出和3中同样的结果,可以这样写。

# 例子,输出和3中同样的结果
import re
test = '2018年的下半年,9月份, 27日'
pattern = re.compile(r'\d{1,4}(?:年|月|日)')
res = pattern.findall(test)
print(res)
# 输出结果: ['2018年', '9月', '27日']

此例子中的 (?:年|月|日) 不表示一个分组

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 代码性能优化技巧分享
Aug 07 Python
Python3基础之条件与循环控制实例解析
Aug 13 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
Python random模块用法解析及简单示例
Dec 18 Python
python爬取m3u8连接的视频
Feb 28 Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 Python
django 装饰器 检测登录状态操作
Jul 02 Python
浅谈python中的多态
Jun 15 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 Python
Django ORM 自定义 char 类型字段解析
Aug 09 #Python
解决使用export_graphviz可视化树报错的问题
Aug 09 #Python
Django中自定义admin Xadmin的实现代码
Aug 09 #Python
python输出决策树图形的例子
Aug 09 #Python
Python实现决策树并且使用Graphviz可视化的例子
Aug 09 #Python
Django ORM 常用字段与不常用字段汇总
Aug 09 #Python
详解如何减少python内存的消耗
Aug 09 #Python
You might like
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
YII框架关联查询操作示例
2019/04/29 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
js中开关变量使用实例
2017/02/24 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
微信小程序实现tab左右切换效果
2020/11/15 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
Django验证码的生成与使用示例
2017/05/20 Python
Python字符串处理实现单词反转
2017/06/14 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
参观考察邀请函范文
2014/01/29 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
关键在于落实心得体会
2014/09/03 职场文书
python ansible自动化运维工具执行流程
2021/06/24 Python