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爬取Coursera课程资源的详细过程
Nov 04 Python
Python psutil模块简单使用实例
Apr 28 Python
在Python中操作字典之update()方法的使用
May 22 Python
python文件名和文件路径操作实例
Sep 29 Python
python数据封装json格式数据
Mar 04 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
djang常用查询SQL语句的使用代码
Feb 15 Python
Python骚操作之动态定义函数
Mar 26 Python
Django中使用MySQL5.5的教程
Dec 18 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 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/10/08 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
django foreignkey(外键)的实现
2019/07/29 Python
python中几种自动微分库解析
2019/08/29 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
思想政治教育专业个人求职信范文
2013/12/20 职场文书
小学毕业感言150字
2014/02/05 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
前台文员岗位职责
2015/02/04 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS