python正则表达式中group
来源:互联网 发布:全民挂机 源码 编辑:程序博客网 时间:2024/05/17 00:54
(一)正则表达式中的(…)
用于匹配括号内的任何正则表达式,并且指明组的开始和结束位置;可以在执行匹配之后检索组中的内容,并且可以在可以在字符串中使用\number来进行进一步的匹配,如下所述。当需要匹配字符’(‘或者’)’时,可以使用(和) ,或者[(]和[)]来实现。
以上便是Python3.6官方文档对于(…)表达式的解说,该括号表达式用于定义一个group,一个正则表达式中可以有多个括号表达式,这就意味着匹配结果中可能有多个group,我们可以用group函数来定位到特定的group结果。
(二)match.group([group1,…])
返回匹配结果中一个或多个group.如果该group函数仅仅有一个参数,那么结果就是单个字符串;如果有多个参数,结果是每一个参数对应的group项的元组.如果没有参数,那么参数group1默认为0(返回的结果就是整个匹配结果).如果参数值是0,那么返回整个匹配结果的字符串;如果它是[1..99]之间的数字,则返回的是与对应括号组匹配的字符串(第一节中已经解释了,正则表达式中的一个括号对应着一个group).如果组号为负或大于模式中定义的组数,则会引发IndexError异常。如果某个group包含在匹配模式中但没有找到相应的匹配,那么对应的结果就是None.如果一个group是匹配模式中的一部分,并且匹配到了多次,那么最后一次匹配结果将返回.
import re#定义了两个group,因为包含两个括号m = re.match("(\w+) (\w+)", "Isaac Newton, physicist")#group(0)就是匹配的整个结果print(m.group(0)) #输出结果为Isaac Newton#group(1)是第一个group的值print(m.group(1)) #输出结果为Isaac#group(2)是第二个group的值print(m.group(2)) #输出结果为Newton#groups返回所有的group,以元组的形式print(m.groups()) #输出结果为('Isaac','Newton')
(三)findall(pattern, string, flag)
返回字符串中模式的所有非重叠匹配,结果以一个字符串list返回.字符串匹配过程是从左到右开始扫描,并且匹配结果按顺序返回,如果该模式组存在一个或多个匹配,则返回匹配该组的一个列表;如果模式中有多个group,则返回的是一个元组的列表,元组中的元素依次对应各组的匹配结果.空的匹配包含在结果中除非它们开始了一个新的匹配过程。
可以看出,findall实质上也是一个group的匹配过程.其结果就是groups匹配结果的列表.
import reif __name__ == '__main__': #用于测试的字符串 str = "<h1>liuwei</h1><a href='www.baidu.com'></a><h1>zhangbin</h1><a href='www.love.com'></a>" regex = re.compile("<h1>(.+?)</h1><a(.+?)></a>") #定义了两个group,两个括号 res = regex.search(str) #search用于找到第一个满足匹配的子串,并返回 print("group1:%s" %res.group(1)) #输出结果为liuwei print("group2:%s" %res.group(2)) #输出结果为href='www.baidu.com' res1 = regex.findall(str) #findall输出所有满足的匹配 print("res1:%s" %res1) print(res1[0]) #输出结果为('liuwei', 'www.baidu.com') print(res1[1]) #输出结果为('zhangbin, 'www.love.com')
- python正则表达式中group
- python正则表达式中的分组 group
- python正则表达式中的分组 group
- Python正则表达式之: (…) group 分组
- java正则表达式中group()方法案例
- java正则表达式中Group的理解
- Java正则表达式中group()、group(i)、groupCount()
- python中正则表达式
- python中正则表达式
- Python中正则表达式
- python中正则表达式
- 正则表达式的group
- 正则表达式group理解
- 正则表达式Group分组
- 正则表达式Matcher.group()
- 正则表达式之group()
- 正则表达式之group
- 正则表达式--Group
- shell中&&和||的使用方法
- 史上最全的时间工具类
- Java并发编程实战(学习笔记 十三 第十四章 构建自定义的同步工具 上)
- axel:多线程下载工具
- 备忘
- python正则表达式中group
- HDU-1231 最大连续子序列
- hive根据日期获取星期几的方法
- undo_retention参数说明
- python安装scipy
- vue.js安装和环境搭建
- memcache与redis区别
- Spring IOC和AOP 原理
- 解决如何去掉手机版HTML页面滚动条