findall方法

相比其他方法,findall方法有些特殊。它的作用是查找字符串中所有能匹配的字符串,并以结果存于列表中,然后返回该列表

注意: match 和 search 是匹配一次 findall 匹配所有。

1 pattern.findall方法

该方法的作用是在string[pos, endpos]区间从pos下标处开始查找所有满足pattern的子串, 直到endpos位置结束,并以列表的形式返回查找的结果,如果未找到则返回一个空列表。

语法格式:

pattern.findall(string[, pos[, endpos]])

2 re.findall

获取字符串中所有能匹配的字符串,并以列表的形式返回。

语法格式:

re.findall(pattern, string, flags=0)

3 当pattern有括号(分组)时,列表中的字符串只是圆括号中的内容,不是整个正则表达式所匹配的内容

  (1)当正则表达式中含有多个圆括号()时

  返回列表中的元素由所有满足匹配的内容组成,但是每个元素都是由表达式中所有圆括号匹配的内容组成的元组

  >>> re.findall(r'a(b)(c)','abcabc')

  [('b', 'c'), ('b', 'c')]

  (2)当正则表达式中只带有一个圆括号时

  返回的列表的元素由所有能成功匹配表达式中圆括

  号匹配的内容组成,并且该列表中的元素都是字符串

  >>> re.findall(r'a(b)c','abcabc')

  ['b', 'b']

  (3)当正则表达式中没有圆括号时

  返回列表中的元素由所有能成功匹配的子串组成。

  >>> re.findall(r'abc','abcabc')

  ['abc', 'abc']

finditer方法

finditer函数跟findall函数类似,但返回的是一个迭代器, 而不是一个像findall函数那样的存有所有结果的list。

finditer的每一个对象可以使用group(可以获取整个匹配串)和groups方法;

在有分组的情况下,findall只能获得分组,不能获得整个匹配串。

>>> re.findall(r'a(b)(c)','abcd 12abcde')

[('b', 'c'), ('b', 'c')]

>>> a = re.finditer(r'a(b)(c)','abcd 12abcde')

>>> for i in a :

... print i.group()

...

abc

abc

>>> a = re.finditer(r'a(b)(c)','abcd 12abcde')

>>> for i in a:

... print i.groups()

...

('b', 'c')

('b', 'c')

python正则表达式(5)--findall、finditer方法的更多相关文章

  1. python 基础 8.4 re的 spilt() findall() finditer() 方法

      #/usr/bin/python #coding=utf-8 #@Time   :2017/11/18 18:24 #@Auther :liuzhenchuan #@File   :re的spli ...

  2. Python正则表达式re.findall("[A-Za-z]([A-Za-z0-9])*[.]txt",'Abc2019.txt')的结果为什么是['9']

    在<Python妙用re.sub分析正则表达式匹配过程>中老猿分析了findall函数的返回情况,老猿前一阵子在执行这个语句时: >>> re.findall(" ...

  3. python正则表达式之re模块方法介绍

    python正则表达式之re模块其他方法 1:search(pattern,string,flags=0) 在一个字符串中查找匹配 2:findall(pattern,string,flags=0) ...

  4. python 正则表达式 re.findall &re.finditer

    语法: findall 搜索string,以列表形式返回全部能匹配的子串 re.findall(pattern, string[, flags]) finditer 搜索string,返回一个顺序访问 ...

  5. Python正则表达式re.findall一个有趣的现象

    下面通过几个案例来分析一下, 注意:本节的parsematch函数请参考<妙用re.sub分析正则表达式解析匹配过程> 案例一: >>> re.findall(r&quo ...

  6. python正则表达式02--findall()和search()方法区别,group()方法

    import re st = 'asxxixxsaefxxlovexxsdwdxxyouxxde' #search()和 findall()的区别 a = re.search('xx(.*?)xxsa ...

  7. Python正则表达式之findall疑点

    在findall中使用()进行分组时,得出的结果会优先提取分组的,比如下面这个例子 In [46]: re.findall(r"www.(baidu|163).com", &quo ...

  8. 正则表达式 re.findall 用法

    正则 re.findall 的简单用法(返回string中所有与pattern相匹配的全部字串,返回形式为数组)语法: findall(pattern, string, flags=0) import ...

  9. 第11.26节 Python正则表达式运算符优先级

    正则表达式从左到右进行计算,并遵循优先级顺序,相关运算符的优先级顺序按下表从高到低排列. 例如:字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或 ...

随机推荐

  1. 一张MGR切换的图,不解释

  2. 【技术博客】Laravel5.1文件上传单元测试

    Laravel5.1文件上传单元测试 作者:ZGJ 在软工第三阶段中,我彻底解决了上一阶段一直困扰我的文件上传单元测试问题,在这里做一个总结. 注:下文介绍中,方法一方法二实现简单但有一定的限制条件( ...

  3. 免费https证书

    https://certbot.eff.org/lets-encrypt/ubuntuother-nginx https://ruby-china.org/topics/31942 https://l ...

  4. suface 触控笔

    触控笔直接就可以书写,顶部橡皮擦可用. 但如果要使用笔上的按键(如单击启动OneNote),必须要用蓝牙进行配对.笔使用一节AAAA电池(九号电池)供电. 连接方法: 准备好surface触控笔,并确 ...

  5. centos下导出docx为html

    yum -y install libreoffice.x86_64 libreoffice --invisible --convert-to html --outdir /root/demo_html ...

  6. 使用ADB安装apk安装包

    1.手机通过USB线连接到电脑,并打开开发者选项和USB调试,允许本机进行调试. 2.打开cmd命令行输入:adb devices 查看当前连接的设备列表. 3.安装apk包命令: adb -s [d ...

  7. Sitecore 8.2 安全性第2部分:安全性编辑器和Access Viewer

    在Sitecore中使用安全性时,您可以使用两个主要应用程序:安全编辑器和Access Viewer.从表面上看,这些工具看起来很相似,但它们扮演着截然不同的角色.让我们回顾一下每个应用程序以及它们的 ...

  8. Tomcat安装及配置(Linux系统)

    环境说明:Linux环境,CentOS 7版本. 第一步:下载tomcat 版本,下载地址:https://tomcat.apache.org/index.html 我用的是zip结尾的包 解压命令: ...

  9. ASP.NET Core中如何显示[PII is hidden]的隐藏信息

    有时候我们在ASP.NET Core项目运行时,发生在后台程序中的错误会将关键信息隐藏为[PII is hidden]这种占位符,如下所示: 而知道这些关键信息,有时候对我们调试程序是非常重要的.所以 ...

  10. GIT VI操作汇总

    在Git Bash Here中用命令行 pull\push\merge 代码,如果存在冲突或者自动合并时,会自动进入VI界面 1.按下 ESC 键,退出编辑模式,切换到命令模式. 2.输入 :wq , ...