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 正则式使用心得
May 07 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
Python实现的简单计算器功能详解
Aug 25 Python
Windows下安装Scrapy
Oct 17 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
利用Python绘制有趣的万圣节南瓜怪效果
Oct 31 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
Python定时任务APScheduler安装及使用解析
Aug 07 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 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加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
python uuid模块使用实例
2015/04/08 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
基于Python的关键字监控及告警
2017/07/06 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
python实现log日志的示例代码
2018/04/28 Python
详解Python with/as使用说明
2018/12/13 Python
解决python replace函数替换无效问题
2020/01/18 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
苹果音乐订阅:Apple Music
2018/08/02 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
传媒专业推荐信范文
2013/11/23 职场文书
七夕活动策划方案
2014/08/16 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
小学作文之描写天气
2019/08/15 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书