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同时向控制台和文件输出日志logging的方法
May 26 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
Jun 13 Python
python中cPickle类使用方法详解
Aug 27 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
Python函数定义及传参方式详解(4种)
Mar 18 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
python性能测量工具cProfile使用解析
Sep 26 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
使用tensorflow根据输入更改tensor shape
Jun 23 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 Python
python中redis包操作数据库的教程
Apr 19 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
2013/06/06 PHP
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
jquery实现数字输入框
2017/02/22 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
python实现批量文件重命名
2019/10/31 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
三年级班级文化建设方案
2014/05/04 职场文书
思想作风建设心得体会
2014/10/22 职场文书
高中同学会致辞
2015/08/01 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers