python正则表达式详解之Match类及其方法
1.Match对象简介
match对象通常是由正则表达式对象的match 方法,search 方法等经过匹配之后而产生。可以直接当做bool值使用,如果匹配则相当于True,
如果不匹配,则返回None,相当于False
#示例:
name='张三'
if re.match('张\w+',name):
print('{},你好!'.format(name))
# 张三,你好!
2.Match对象的方法们:
2.1 match.expand(template)
说明:该方法利用一个类似sub方式,将template字符串中指定的利用反斜杠标示的数字或组名替换为相应组中值。
m=re.match(r'(?P<first_name>\w+) (?P<last_name>\w+)','Eric Brown')
print(m.group(0))
# Eric Brown
print(m.group(1))
# Eric
print(m.group(2))
# Brown
print(m.expand(r'His name is \1 \2'))
# His name is Eric Brown
print(m.expand(r'His name is \g<1> \g<2>'))
# His name is Eric Brown
print(m.expand(r'His name is \g<first_name> \g<last_name>'))
# His name is Eric Brown
2.2 match.group([group1, ...])
几点说明:
1.如果组中组出的参数是一个0-99的单个数值,则返回一个字符串。
2.如果组中组出的参数0,则返回整个匹配的值。
3.如果组中组出的参数是负数或超出组的最大长度,则给出越界错误。
4.如果组中组出的参数是两个值,则给出由两个值分别对应的值的一个tuple。
print(m.group(1,2))
('Eric', 'Brown')
5.如果正则表达式中的一个组匹配了多个值,则相应的组只保存最后匹配的值。
6.如果正则表达式中的一个组没有匹配到值,则相应的组为None。
2.3 match.__getitem__(g)
该方法定义一个更加简单的就去访问match的中组,即:
m[0]<==>m.group(0)
# 示例:
print(m[0])
# Eric Brown
print(m[1])
# Eric
注意:不能使用多个值进行读取
2.4 match.groups(default=None)
以tuple的形式返回所有的子组中的内容:
print(m.groups())
# ('Eric', 'Brown')
2.5 match.groupdict(default=None)
以字典的方式返回所有的子组中的内容#
print(m.groupdict())
# {'first_name': 'Eric', 'last_name': 'Brown'}
2.6 match.start([group]),match.end([group])
返回正则表达式中的组匹配的子字符串在原字符串中的起始与结束位置,默认值为0示例:
print(m.start(),m.end())
# 0 10
print(m.start(1),m.end(1))
# 0 4
print(m.start(2),m.end(2))
# 5 10
print(m.string[m.start(2):m.end(2)])
# Brown 等价于 m.group(2) 等价于 m[2]
如果正则表达式中的组没有匹配,则相应的开始与结束均为-1,如果正则表达式匹配到了一个空字符串,则m.start()与m.end()相等。
2.7 match.span([group])
返回一个(m.start(),m.end())的元组。
# 示例: print(m.span())
# (0, 10) print(m.span(1))
# (0, 4)
2.8 match.pos
通过正则表达式对象传递值,表示正则表达式将从何处开始匹配
2.9 match.endpos
通过正则表达式对象传递值,表示正则表达式将从何处结束匹配
# 示例如下:
p=re.compile('\d+')
m=p.match('123456',2,4)
print(m[0])
# 34
2.10 match.lastindex
最后一个匹配到的组的序号。与正则表达式中的组有关,如果全部不匹配,则为None
m=re.match(r'(?P<first_name>\w+) (?P<last_name>\w+)','Eric Brown') print(m.lastindex)
# 2
2.11 match.lastgroup
最后一个匹配到的组的名称。与正则表达式中的组有关。注意:如果匹配的组没有名字或才根本没有匹配,则返回None
print(m.lastgroup)
# last_name
2.12 match.string
通过search或match方法传递的参数,待匹配的字符串
print(m.string)
# Eric Brown
正文到此结束了
后面分析一下python学习路线图https://www.bilibili.com/video/BV1V741117Zt/
还有一些学习资料


链接:https://pan.baidu.com/s/1sMxwTn7P2lhvzvWRwBjFrQ
提取码:kt2v
链接容易被举报过期,如果失效了就在这里领取吧

python正则表达式详解之Match类及其方法的更多相关文章
- Python正则表达式详解——re库
一.简介 1.1.相关链接 官方文档: Python2:https://docs.python.org/2/library/re.html Python3:https://docs.python.or ...
- Python正则表达式详解
我用双手成就你的梦想 python正则表达式 ^ 匹配开始 $ 匹配行尾 . 匹配出换行符以外的任何单个字符,使用-m选项允许其匹配换行符也是如此 [...] 匹配括号内任何当个字符(也有或的意思) ...
- python 正则表达式详解
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...
- 「黑客必备技能」Python正则表达式详解
说在前面 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能. 正则表达式在不同的语言中使 ...
- 第8.22节 Python案例详解:重写 “富比较”方法控制比较逻辑
一. 案例说明 本节定义一个小汽车的类Car,类中包括车名carname.百公里油耗oilcostper100km.价格price三个属性.然后实现__lt__.__gt__.__le__.__ge_ ...
- Linux文本处理三剑客之grep及正则表达式详解
Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Java 正则表达式详解_正则表达式
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- [转] Python Traceback详解
追莫名其妙的bugs利器-mark- 转自:https://www.jianshu.com/p/a8cb5375171a Python Traceback详解 刚接触Python的时候,简单的 ...
随机推荐
- SpringBoot系列(二)入门知识
SpringBoot系列(二)入门知识 往期推荐 SpringBoot系列(一)idea新建springboot项目 引言 本来新建springboot项目应该放在入门知识这一章的,但是由于新建spr ...
- .Net微服务实践(二):Ocelot介绍和快速开始
目录 介绍 基本原理 集成方式 快速开始 创建订单服务 创建产品服务 创建网关 运行验证 最后 上篇.Net微服务实践(一):微服务框架选型 我们对微服务框架整体做了介绍,接下来我们从网关Ocelot ...
- MySql 分组函数
#二.分组函数/*功能:用作统计使用,又称为聚合函数或统计函数或组函数 分类:sum 求和.avg 平均值.max 最大值 .min 最小值 .count 计算个数 特点:1.sum.avg一般用于处 ...
- python基础知识 目录 简介
1.1编程语言介绍与分类 什么是编程语言? 本质:与人类语言一样.沟通 电流+一堆硬件 高电压1 低电压0 高电压1 低电压0 高电压1 低电压0 8 晶体管 010101010101 play so ...
- fiddler设置重定向
fiddler支持将指定模式的url映射到另一个指定的url,即可用于拦截某一请求,并重定向到本地的资源或其他服务器地址 fiddler常用于: 解析请求:如:解析http请求状态,请求头,请求正文, ...
- Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序”
小学生都能用的编程语言 2020的春季中小学受疫情影响,一直还没有开学,孩子宅在家说想做一个学校要求的研究项目,我就说你做一个怎么样通过编程来学习数学的小项目吧,用最简单的计算机语言来解决小学数学问题 ...
- 微信小程序H5预览页面框架
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 微信小程序修改单选按钮的默认样式
https://blog.csdn.net/abs1004/article/details/78922596
- 自动生成四则运算题目(C语言)
Github项目地址:https://github.com/huihuigo/expgenerator 合作者:马文辉(3118005015).卢力衔(3118005013) 项目简介 1题目:实现一 ...
- mappedBy和JoinColumn,onetomany。
无论是onetomany,还是manytoone.都要设置级联关系(cascade),否则不会储存关联的数据. @Entity public class Clazzss { @Id @Generate ...