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 相关文章推荐
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
python实现巡检系统(solaris)示例
Apr 02 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
Python使用Tkinter实现机器人走迷宫
Jan 22 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
Python socket处理client连接过程解析
Mar 18 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
python如何写个俄罗斯方块
Nov 06 Python
python切片作为占位符使用实例讲解
Feb 17 Python
python学习之panda数据分析核心支持库
May 07 Python
详解分布式系统中如何用python实现Paxos
May 18 Python
写好Python代码的几条重要技巧
May 21 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
html中select语句读取mysql表中内容
2006/10/09 PHP
php实现的农历算法实例
2015/08/11 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
wxpython绘制圆角窗体
2019/11/18 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
如何理解Python中的变量
2020/06/01 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
如何通过python检查文件是否被占用
2020/12/18 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
《草虫的村落》教学反思
2014/02/16 职场文书
六个一活动实施方案
2014/03/21 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
导游词之介休绵山
2019/12/31 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
解析Redis Cluster原理
2021/06/21 Redis
服务器SVN搭建图文安装过程
2022/06/21 Servers