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中用memcached来减少数据库查询次数的教程
Apr 07 Python
Python实现周期性抓取网页内容的方法
Nov 04 Python
Python中基础的socket编程实战攻略
Jun 01 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
Django发送邮件功能实例详解
Sep 02 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
python操作gitlab API过程解析
Dec 27 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
Jan 08 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
Numpy 多维数据数组的实现
Jun 18 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四种基本排序算法示例
2015/04/09 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
JS上传前预览图片实例
2013/03/25 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
vue中的scope使用详解
2017/10/29 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
python 中random模块的常用方法总结
2017/07/08 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
python中format()函数的简单使用教程
2018/03/14 Python
Flask之flask-session的具体使用
2018/07/26 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
请解释接口的显式实现有什么意义
2012/05/26 面试题
求职信怎么写
2014/05/23 职场文书
2015年派出所工作总结
2015/04/24 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
严以律己学习心得体会
2016/01/13 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android