Pytho正则表达式-match
代码:
#!/usr/bin/python
import re
line = "Cats are smarter than dogs"
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
else:
print "No match!!"
以上实例执行结果如下:
matchObj.group() : Cats are smarter than dogs
matchObj.group(1) : Cats
matchObj.group(2) : smarter
主要解释下 r'(.*) are (.*?) .*'
首先,这是一个字符串,前面的一个r表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。但是这个字符串里没有反斜杠,所以这个r可有可无。
(.*) 第一个匹配分组, .* 代表匹配除换行符之外的所有字符,即任意字符即可
(.*?)第二个匹配分组,.*?后面多个问号,代表非贪婪模式,也就是说只匹配符合条件的最少字符
后面的一个.* 没有括号包围,所以不是分组,匹配效果和第一个一样,但是不计入匹配结果中,只有加括号的才会返回到匹配结果中
matchObj.group() 等同于 matchObj.group(0),表示匹配到的完整文本字符
matchObj.group(1) 得到第一组匹配结果,也就是(.*)匹配到的
matchObj.group(2) 得到第二组匹配结果,也就是(.*?)匹配到的
这里对新手还有个问题,matchObj.group(3)会报错,因为只有匹配结果中只有两组,所以填3时会报错。
下面是修改后的代码 ,一看便懂
#!/usr/bin/python import re
line = "Cats are smarter than dogs hahaha" matchObj = re.match(r'(.*) are (.*?) than (.*) ha', line, re.M | re.I) if matchObj:print "matchObj.group() : ", matchObj.group()print "matchObj.group(1) : ", matchObj.group(1)print "matchObj.group(2) : ", matchObj.group(2)print "matchObj.group(3) : ", matchObj.group(3) else:print "No match!!"
结果:
D:\python\python.exe D:/pycharm/workspace/test01.py
matchObj.group() : Cats are smarter than dogs ha
matchObj.group(1) : Cats
matchObj.group(2) : smarter
matchObj.group(3) : dogs
Pytho正则表达式-match相关推荐
- java match正则不生效_[Java教程]正则表达式match()函数
[Java教程]正则表达式match()函数 0 2015-09-26 12:00:31 正则表达式match()函数: 此方法可在字符串内查找一个或多个正则表达式的匹配. 返回值是一个数组,但是此数 ...
- python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...
match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...
- python正则表达式match,search,find的使用方法
1.使用match()匹配字符串: match()函数试图从字符串的开始部分对模式进行匹配, 匹配对象的group()方法能够用于显示那个成功的匹配. >>>import re &g ...
- 正则表达式match和group的区别 具有相同模式的字符串使用组的提取案例及原理
一.案例: Match类 示例:查找出字符串中包含的url string text = "FirstUrl: http://www.sohu.com ,SecondUrl: http://w ...
- python search返回值_python正则表达式--match search方法
1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern,str ...
- awk根据正则表达式match截取字符串
变量:testStr = "dt='2019-05-14 00%3A00%3A00.0',file='logserver11-00-00'" 目的效果:取出2019-05-14 0 ...
- Python:正则表达式match、search、findall、finditer区别,group()、groups()与group(index)的区别
1.match re.match(pattern, string[, flags]) 从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None, ...
- Python 正则表达式 match、findall、search
今天在练习爬虫的时候,居然发现不会用python正则提取数据,特地来总结一下python的常用三个数据提取函数 先来看一下 match 和 search 的区别:match 并不会扫描整个字符串,只会 ...
- vb.net 正则 替换 第n个_Python中正则表达式模块详解
作者:python来源:SegmentFault 思否社区 正则表达式用来处理字符串,对字符串进行检索和替换,另外正则在python爬虫的应用也是相当广泛! 特点 灵活性.逻辑性和功能性非常强 可以迅 ...
最新文章
- b500k电位器引脚接法_可调电位器实物接线图及接线方法详解
- springmvc返回数据中文乱码
- rust怎么不要的墙拆掉_封阳台,栏杆要不要拆掉?栏杆装在玻璃窗里面还是外面...
- hive读取hdfs存放文件_数据获取层之Flume快速入门(一) 实时监控单个追加文件
- 【Android】Android Studio打包生成正式签名的APK
- socketio mysql_socket.io 在java与微信小程序上的应用
- 感谢贫穷,是贫穷限制了人们的善良
- 本地自旋锁与信号量/多服务台自旋队列-spin wait风格的信号量
- Mapbar 地图 API 概念 技术文档
- 撩开云计算神秘面纱之阿里云弹性计算服务篇
- AO*算法详解,附例子和算法详细步骤
- Python调用微博API
- [转]欧洲航天局计划于2018年登月寻水
- CentOS 8 下载及安装
- 揭秘有状态服务上 Kubernetes 的核心技术
- Lucas-Kanade稀疏光流法
- mysql大于、小于符号的两种表示方法
- 【代码超详解】LightOJ 1197 Help Hanzo(区间质数筛法)
- 苹果手机白屏_安卓卡顿苹果闪退,手机换代的动力原来是这些
- java 家庭电视类_Java-家中的电视机