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连接sql server乱码的解决方法
Jan 28 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
linux查找当前python解释器的位置方法
Feb 20 Python
django中使用事务及接入支付宝支付功能
Sep 15 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
python 自动刷新网页的两种方法
Apr 20 Python
Python基础之条件语句详解
Jun 16 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
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
php数据访问之查询关键字
2016/05/09 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
Jquery中dialog属性小记
2010/09/03 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
Vue计算属性的使用
2017/08/04 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
详解Django的CSRF认证实现
2018/10/09 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
使用Python实现牛顿法求极值
2020/02/10 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
网上快餐厅创业计划书
2014/02/01 职场文书
高三毕业寄语
2014/04/10 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
2014年统战工作总结
2014/12/09 职场文书
水浒传读书笔记
2015/06/25 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
基于Python编写一个监控CPU的应用系统
2022/06/25 Python