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的时候,简单的 ...
随机推荐
- Prism 源码解读6-事件聚合
0 介绍 事件提供的是1对多的绑定,通过委托链实现对订阅者的调用,事件必须要通过发布者调用.同时事件订阅是强引用,事件订阅者的生命周期总是大于等于事件发布者.如果代码中事件很多就会充斥着各种事件的订阅 ...
- javascript实现组合列表框中元素移动效果
应用背景:在页面中有两个列表框,需要把其中一个列表框的元素移动到另一个列表框 . 实现的基本思想: (1)编写init方法对两个列表框进行初始化: (2)为body添加onload事件调用init方 ...
- 力软敏捷框架 jfGrid 使用例子之一
百度了下关于力软敏捷框架 jfGrid的教程,基本没有,出来的全是jqGrid.好吧看来只能自己上手了 今天来讲讲列设置属性里数据格式化事件(formatter)的使用 常规的使用方式如上图所示. 先 ...
- 《Three.js 入门指南》3.1.1 - 基本几何形状 -多面体
3.1 基本几何形状 多面体 构造函数 正四面体(TetrahedronGeometry).正八面体(OctahedronGeometry).正二十面体(IcosahedronGeometry)的构造 ...
- 1028 List Sorting (25 分)
Excel can sort records according to any column. Now you are supposed to imitate this function. Input ...
- Html 慕课园编程练习10-1
23:10:25 2019-08-14 自己写的这个好丑.... 题目:利用之前我们学过的JavaScript知识,实现选项卡切换的效果. 效果图: (另外 这个动图是怎么插入的 用url就行 复制就 ...
- Prthon多线程和模块
Prthon多线程和模块 案例1:简化除法判断 案例2:分析apache访问日志 案例3:扫描存活主机 案例4:利用多线程实现ssh并发访问 1 案例1:简化除法判断 1.1 问题 编写mydiv.p ...
- MySQL5.7使用Notifier启动、停止服务时出现的问题
1.选择右击右下角 MySQL Notifier ,选择 Actions -> Manage Monitored Items 2.选择当前的服务 MySQL57 并进行删除 3.然后点击 a ...
- Python爬虫系列(四):Beautiful Soup解析HTML之把HTML转成Python对象
在前几篇文章,我们学会了如何获取html文档内容,就是从url下载网页.今天开始,我们将讨论如何将html转成python对象,用python代码对文档进行分析. (牛小妹在学校折腾了好几天,也没把h ...
- lr使用soap协议,来对webservice接口进行测试
实际项目中基于WSDL来测试WebService的情况并不多,WSDL并不是WebService测试的最佳选择. 最主要的原因还是因为WSDL文档过于复杂. 在案例(天气预报WebService服务) ...