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的时候,简单的 ...
随机推荐
- 模块 hashlib 加密 签名 防篡改
hashlib 模块 加密算法: hash (152位)散列 哈希 不可逆得 密码背后就是 hash 程序退出hash 值就变了 ,hash值得结果有可能重复 MD5 (128位) 讯息摘要演算法 基 ...
- [noip模拟]水灾<BFS>
水灾(sliker.cpp/c/pas) 1000MS 64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...
- Matlab GUI设计(2)
11. (1)界面设计 (2)添加按钮的回调函数 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle ...
- 20175314 实验五 Java网络编程
20175314 实验五 Java网络编程 一.实验报告封面 课程:Java程序设计 班级:1753班 姓名:薛勐 学号:20175314 指导教师:娄嘉鹏 实验日期:2018年5月31日 实验时间: ...
- WebView中Java与JavaScript的交互
原文首发于微信公众号:jzman-blog,欢迎关注交流! Android 开发过程中 WebView 的使用比较广泛,常用来加载网页,比如使用 WebView 加载新闻页面.使用 WebView 打 ...
- 大数据篇:Hive
大数据篇:Hive hive.apache.org Hive是什么? Hive是Facebook开源的用于解决海量结构化日志的数据统计,是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射 ...
- python编程学习路线及笔记
话不多说,直接上图! 关于人工智能算法学习思路,欢迎浏览我的另一篇随笔:如果你想开始学习算法,不妨先了解人工智能有哪些方向? 之后博主将持续分享各大算法的学习思路和学习笔记:hello world: ...
- error: cannot bind non-const lvalue reference of type
这种问题一般是因为引用了匿名变量.涉及左值和右值的区别.一般函数的参数如果是一个表达式,那将会产生一个第3方的匿名变量传入这个函数中,此时如果引用,没用什么实际意义. c++中临时变量不能作为非con ...
- 【mysql】用navicat无法连接mysql时解决方法
1.进入数据库 2.输入 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
- Windows 手动安装 Apache24 web服务器
文章更新于:2020-02-18 按照惯例,需要的文件附上链接放在文首 文件名:httpd-2.4.41-o111c-x64-vc15-r2.7z 文件大小:6.1MB 下载链接:https://ww ...