python正则表达式(5)--findall、finditer方法

摘要:
与其他方法相比,findall方法有些特殊。1Pattern.findall方法此方法的功能是从字符串[pos,endpos]间隔中的pos下标查找满足模式的所有子字符串,直到endpos位置结束,并以列表的形式返回搜索结果。如果未找到,则返回空列表。语法格式:pattern.findall2re.findall获取字符串中所有匹配的字符串,并以列表的形式返回它们。

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方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Microsoft SQL Server 查询连接数和关闭连接数Ubuntu之修改主机名和 User与root用户相互切换下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python IDE安装-mac

mac 配置Python集成开发环境(Eclipse +Python+Pydev)  1、下载Mac版64位的Eclipse。 进入到Eclipse官方网站的下载页面(http://www.eclipse.org/downloads/),我选择了下图所示的软件包, 浏览器在下载过程中使用的超链接 http://ftp.daum.net/eclipse/...

python3.6下载安装使用

######## 1.首先到python的官方网站 https://www.python.org/ 2.鼠标放在Download上。点击下面对应的型号,我的是Windows 3.点击Windows到此页面。点击3.6版本 4,4.往下拉。一直到Files部分。选择对应自己电脑型号,我的是X86 64位的 下载可执行的安装程序.exe结尾的, Windo...

Starting Session of user root.

Sep 23 01:50:01 d systemd: Started Session 1475 of user root.Sep 23 01:50:01 d systemd: Starting Session 1475 of user root.Sep 23 01:50:01 d systemd: Started Session 1476 of user...

python 获取过去几天,过去几个月,过去几年的时间列表

在平时的开发中,需要获取最近几个月,最近几年或者最近几天的时间列表,本文使用了arrow去实现了这几个过程。 def get_day(num): day_list = [] a = arrow.now() # 当前本地时间 for i in range(0, num + 1):...

Python开发WebService--使用soaplib库

Python开发WebService--使用soaplib库   使用soaplib开发基于Python语言的WebService主要有以下四个步骤:一、准备环境    S1:下载插件Python、soaplib、Twisted、lxml(soaplib依赖于lxml这个库)    S2:使用easy_install快速安装,如进入Python安装目录下(...

python第一行注释是什么意思?

  很大多时候在开始学习python的时候,知道,#是注释的意思,但是每次写python的第一句都是提示 #!/usr/ ...不知是什么意思? 表示该文件是个.py程序,执行的时候需要python环境来执行。 这是脚本语言共同遵守的规则:当第一行为 #!/path/to/script/interpreter时,指定了用来执行本脚本的解释器。注意:1、必须...