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简单实现计算过期时间的方法
Jun 09 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python探索之Metaclass初步了解
Oct 28 Python
django rest framework之请求与响应(详解)
Nov 06 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
对python使用http、https代理的实例讲解
May 07 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
django最快程序开发流程详解
Jul 19 Python
简单的Python调度器Schedule详解
Aug 30 Python
python实现PCA降维的示例详解
Feb 24 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
Aug 07 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内核(二)之SAPI探究
2015/11/10 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
python遍历路径破解表单的示例
2020/11/21 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
中医专业职业生涯规划书范文
2014/01/04 职场文书
新郎新娘婚礼答谢词
2014/01/11 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
论文评语大全
2014/04/29 职场文书
致接力运动员加油稿
2015/07/21 职场文书
预备党员入党感言
2015/08/01 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python