findall 函数:

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有,match 和 search 的区别也很大,可以自行网上查找!

这里主要需要讨论的是其返回值的展现方式,即findall函数根据正则表达式的不同所返回的结果包含的不同信息!

主要包含三种情况:

  1. 当给出的正则表达式中带有多个括号时,列表的元素为多个字符串组成的tuple,tuple中字符串个数与括号对数相同,字符串内容与每个括号内的正则表达式相对应,并且排放顺序是按括号出现的顺序。

  1. # 例子,正则表达式里分了两个组
  2.  
  3. import re
  4.  
  5. test = '2018年的下半年,9月份, 27日'
  6. pattern = re.compile(r'(\d)+(年|月|日)')
  7. res = pattern.findall(test)
  8. print(res)
  9.  
  10. # 输出结果: [('8', '年'), ('9', '月'), ('7', '日')]

  2. 当给出的正则表达式中带有一个括号时,列表的元素为字符串,此字符串的内容与括号中的正则表达式相对应(不是整个正则表达式的匹配内容)。

  1. # 例子,正则表达式里有一个分组
  2.  
  3. import re
  4.  
  5. test = '2018年的下半年,9月份, 27日'
  6. pattern = re.compile(r'\d+(年|月|日)')
  7. res = pattern.findall(test)
  8. print(res)
  9.  
  10. # 输出结果: ['年', '月', '日']

  3. 当给出的正则表达式中不带括号时,列表的元素为字符串,此字符串为整个正则表达式匹配的内容。

  1. # 例子,正则表达式里没有分组
  2.  
  3. import re
  4.  
  5. test = '2018年的下半年,9月份, 27日'
  6. pattern = re.compile(r'\d{4}年|\d{1}月|\d{2}日')
  7. res = pattern.findall(test)
  8. print(res)
  9.  
  10. # 输出结果: ['2018年', '9月', '27日']

  4. 同样是前面的 test 数据,要匹配出和3中同样的结果,可以这样写。

  1. # 例子,输出和3中同样的结果
  2.  
  3. import re
  4.  
  5. test = '2018年的下半年,9月份, 27日'
  6. pattern = re.compile(r'\d{1,4}(?:年|月|日)')
  7. res = pattern.findall(test)
  8. print(res)
  9.  
  10. # 输出结果: ['2018年', '9月', '27日']
  1.  

  此例子中的 (?:年|月|日) 不表示一个分组,有一个博客网址可以了解一下正则知识。虽然还是python2版本的,但是应该也没有什么太大的变化!

  https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

Python re 模块findall() 函数返回值展现方式详解的更多相关文章

  1. c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)

    C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...

  2. Python从线程获取函数返回值

    Python中利用强大的threading模块可以很容易的实现多线程开发,提高运行速度.这一般是对某个进行大量计算操作的的函数进行多线程处理,然后合并各线程的结果.获取函数返回值的方法可以如下: 1) ...

  3. Python学习教程(learning Python)--2.3.4Python函数返回值

    本节讨论Python函数返回值问题. Python和C语言一样,也可以在函数结束时返回一个值.但在定义自己的Python函数时,是不需要指定返回值数据类型的,这和Python不关心变量的数据类型是一致 ...

  4. pandas模块常用函数解析之Series(详解)

    pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...

  5. Python Tkinter模块 Grid(grid)布局管理器参数详解

    在使用Tkinter模块编写图像界面时,经常用到pack()和grid()进行布局管理,pack()参数较少,使用方便,是最简单的布局,但是当控件数量较多时,可能需要使用grid()进行布局(不要在同 ...

  6. python学习之函数返回值

    python中函数返回值的方式有2种: 1.return语句 说明:return语句执行完后,函数后续的代码将不会被执行 2.yield语句 说明:yield语句返回的是一个迭代器对象,可以通过nex ...

  7. python re模块findall使用

    今天练习re模块时候出现了一个很奇怪的问题,同样的正则表达式用re.search()与用re.compile().findall()匹配出来的结果不一致. 很是奇怪,故此记录一下,防止以后碰到类似情况 ...

  8. re模块findall函数用法

    title: Python subtitle: 1.re模块findall函数用法 date: 2018-12-13 10:17:28 --- Python re 模块 findall 函数用法简述 ...

  9. Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。

    Python urllib模块urlopen()与urlretrieve()的使用方法详解   1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...

随机推荐

  1. Hdu 5344

    Hdu5344 题意: 给你一个数组,求所有的 $ a_i + a_j $ 的异或值. 解法: 因为 $ (a_i+a_j) \bigoplus (a_j + a_i) = 0$ . 所以答案就是 $ ...

  2. Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写

    测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...

  3. Unknown system variable 'query_cache_size'

    java连接mysql 报错 java.sql.SQLException: Unknown system variable 'query_cache_size'at com.mysql.cj.jdbc ...

  4. Resend a Request by fiddler

    Resend a Request You can resend a request directly from the Sessions List, or save requests to resen ...

  5. CImage中m_hBitmap!=0弹框报错

    见图.查资料说是图片打印出现问题. 我的代码流程主要是:读图到CImage中,然后转移到数组中,将原对象销毁,对图像内容处理后,保存. 原来没问题,在加了参数循环后报错. 考虑到是循环中一些因素初始化 ...

  6. js es6遍历对象的6种方法(应用中推荐前三种)

        javaScript遍历对象总结 1.for … in 循环遍历对象自身的和继承的可枚举属性(循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).). 2.使用Object.keys ...

  7. 漫谈Objective-C在语法上的改进

    Objective-C 2.0从2006年正式发布至今已经有10年了.Apple在此期间也不断地为其注入新的语法特性,比如Blocks.NSNumber literal.NSArray literal ...

  8. 使用es6一句话去重

    let arr = [1,2,3,4,5,1,2,3] let arr2 = Array.from(new Set(arr)) console.log(arr2) //[1,2,3,4,5]

  9. img标签替换为mip-img标签的方法

    function replaceMipImages($content){ preg_match_all('/<img (.*?)\>/', $content, $images); if(! ...

  10. Windows下Apache+PHP+MySQL搭建web服务器

    Apache+PHP+MySQL搭建服务器 工欲善其事必先利其器. 最近由于电脑出了问题不得不重新安装需要的文件,代码什么的都没了,以前也没怎么写过东西这回就先试试手,写的不是太好,希望大家不要介意哈 ...