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 相关文章推荐
初步剖析C语言编程中的结构体
Jan 16 Python
python绘制条形图方法代码详解
Dec 19 Python
python使用KNN算法手写体识别
Feb 01 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
Python3实现获取图片文字里中文的方法分析
Dec 13 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
Python之Class&Object用法详解
Dec 25 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
Python如何使用循环结构和分支结构
Apr 13 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生成缩略图的代码
2011/01/12 PHP
PHP+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
PHP的反射机制实例详解
2017/03/29 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
Python实现像awk一样分割字符串
2020/09/15 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
上海方立数码笔试题
2013/10/18 面试题
物流专业求职计划书
2014/01/10 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS