Python re 模块findall() 函数返回值展现方式详解
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日']
此例子中的 (?:年|月|日) 不表示一个分组,有一个博客网址可以了解一下正则知识。虽然还是python2版本的,但是应该也没有什么太大的变化!
https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
Python re 模块findall() 函数返回值展现方式详解的更多相关文章
- c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)
C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...
- Python从线程获取函数返回值
Python中利用强大的threading模块可以很容易的实现多线程开发,提高运行速度.这一般是对某个进行大量计算操作的的函数进行多线程处理,然后合并各线程的结果.获取函数返回值的方法可以如下: 1) ...
- Python学习教程(learning Python)--2.3.4Python函数返回值
本节讨论Python函数返回值问题. Python和C语言一样,也可以在函数结束时返回一个值.但在定义自己的Python函数时,是不需要指定返回值数据类型的,这和Python不关心变量的数据类型是一致 ...
- pandas模块常用函数解析之Series(详解)
pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...
- Python Tkinter模块 Grid(grid)布局管理器参数详解
在使用Tkinter模块编写图像界面时,经常用到pack()和grid()进行布局管理,pack()参数较少,使用方便,是最简单的布局,但是当控件数量较多时,可能需要使用grid()进行布局(不要在同 ...
- python学习之函数返回值
python中函数返回值的方式有2种: 1.return语句 说明:return语句执行完后,函数后续的代码将不会被执行 2.yield语句 说明:yield语句返回的是一个迭代器对象,可以通过nex ...
- python re模块findall使用
今天练习re模块时候出现了一个很奇怪的问题,同样的正则表达式用re.search()与用re.compile().findall()匹配出来的结果不一致. 很是奇怪,故此记录一下,防止以后碰到类似情况 ...
- re模块findall函数用法
title: Python subtitle: 1.re模块findall函数用法 date: 2018-12-13 10:17:28 --- Python re 模块 findall 函数用法简述 ...
- Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。
Python urllib模块urlopen()与urlretrieve()的使用方法详解 1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...
随机推荐
- electron-vue搭建项目
原文链接 使用pdf.js插件与LODOP控件实现前端浏览器静默打印PDF文件 lodop官网地址:http://www.lodop.net/download.html 点击下载,文件里有使用手册 e ...
- 1656:Combination
一本通1656:Combination 1656:Combination 时间限制: 1000 ms 内存限制: 524288 KB提交数: 89 通过数: 49 [题目描述] ...
- NSString的创建
create #progma mark create NSString void stringCreate(){ //char *s="A String";->c NSSt ...
- [linux]sudo 出现unable to resolve host 解决方法
Ubuntu环境, 假设这台机器名字(hostname)叫abc, 每次执行sudo 就出现这个警告讯息:sudo: unable to resolve host abc虽然sudo 还是可以正常执行 ...
- Event---事件详解
1.焦点事件 焦点:使浏览器能够区分用户输入的对象,当一个元素有焦点的时候,那么他就可以接收用户的输入. 可以通过以下方式给元素设置焦点: 点击.tab.js 不是所有元素都能够接收焦点的,能够响应用 ...
- [转][C#]基础连接已经关闭 未能为 SSL/TLS 安全通道建立信任关系
来自:https://www.cnblogs.com/waw/p/8286608.html 代码部分: static TestApplication(){ ServicePointManager.Se ...
- [转]Html 页面常用单词
Html 页面常用单词 本文来自:https://gitee.com/opencc/SchoolAppDemo 第2批: JavaScript ready 准备 function 函数 disappe ...
- 关于Java 8新引入语法特性的简要说明
Java 8在语法上的主要改进就是新增了Lambda Expression以及Method Reference.由于官方网站的介绍稍显罗嗦,而且例子也有些复杂.我这里将提供一些更为浅显.直观的例子来帮 ...
- c++ Container print
template<typename Container>void PrintContents(const Container& con) { Container::const_it ...
- 17 Flutter仿京东商城项目 保存历史搜索记录 删除历史记录 清空历史记录 长按删除
Storage.dart import 'package:shared_preferences/shared_preferences.dart'; class Storage{ static Futu ...