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写的Tkinter程序屏幕居中方法
Mar 10 Python
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python 获得命令行参数的方法(推荐)
Jan 24 Python
python清除字符串前后空格函数的方法
Oct 21 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
Spy++的使用方法及下载教程
Jan 29 Python
python tkinter模块的简单使用
Apr 07 Python
只用40行Python代码就能写出pdf转word小工具
May 31 Python
进行数据处理的6个 Python 代码块分享
Apr 06 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进行MySQL删除记录操作代码
2008/06/07 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python网页解析器使用实例详解
2020/05/30 Python
DataList 能否分页,请问如何实现?
2015/05/03 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
产品促销活动策划书
2014/01/15 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
廉洁自律承诺书
2014/03/27 职场文书
焦裕禄观后感
2015/06/03 职场文书
教师培训学习心得体会
2016/01/21 职场文书
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server