python正则分组的应用


Posted in Python onNovember 10, 2013
import re
text='V101_renow.Android.2.2.Normal.1.Alpha.apk?IMSI=460029353813976&MOBILE=&OLD_VERSION=renow.Android.2.1.Normal.1.Alpha&CHANNELID=3'
m = re.search(r"\w+_(renow.*)\.(apk|vir|ipa)\?IMSI=(\d+)&MOBILE=&OLD_VERSION=(.*)&CHANNELID=(.*)", text)
if m:
    print m.group(0), '\n', m.group(1),'\n', m.group(2),'\n', m.group(3),'\n', m.group(4),'\n', m.group(5)
else:
    print 'not match'

以下是补充:

组是通过 "(" 和 ")" 元字符来标识的。 "(" 和 ")" 有很多在数学表达式中相同的意思;它们一起把在它们里面的表达式组成一组。举个例子,你可以用重复限制符,象 *, +, ?, 和 {m,n},来重复组里的内容,比如说(ab)* 将匹配零或更多个重复的 "ab"。

例子:如果不引入括号,增个表达式作为一个组,是group(0)

>>> import re
>>> p=re.compile('\d-\d-\d')
>>> m=p.match('2-3-1')
>>> m.groups()
()
>>> m.group()
'2-3-1'
>>> m.group(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: no such group

如果引入括号,可以将上面的表达式分成3组,如下

>>> p=re.compile('(\d)-(\d)-(\d)')
>>> m=p.match('1-2-3')
>>> m.group()
'1-2-3'
>>> m.group(1)
'1'
>>> m.group(0,2,1)
('2-3-1', '2', '1')

也可以给各个组取名字,例如,给第一个数组取名叫first

>>> p=re.compile('(?P<first>\d)-(\d)-(\d)')
>>> m=p.match('1-2-3')
>>> m.group(1)
'1'
>>> m.group('first')

'1'

Python 相关文章推荐
python学习笔记:字典的使用示例详解
Jun 13 Python
Python查找相似单词的方法
Mar 05 Python
Python求解平方根的方法
Mar 11 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
python正则表达式re之compile函数解析
Oct 25 Python
对pandas replace函数的使用方法小结
May 18 Python
Python实现的个人所得税计算器示例
Jun 01 Python
python 随机森林算法及其优化详解
Jul 11 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Python 列表的清空方式
Jan 13 Python
python topk()函数求最大和最小值实例
Apr 02 Python
python Django连接MySQL数据库做增删改查
Nov 07 #Python
使用Python下载Bing图片(代码)
Nov 07 #Python
python中文乱码的解决方法
Nov 04 #Python
python Django模板的使用方法(图文)
Nov 04 #Python
使用python Django做网页
Nov 04 #Python
教你安装python Django(图文)
Nov 04 #Python
python条件和循环的使用方法
Nov 01 #Python
You might like
第二节--PHP5 的对象模型
2006/11/16 PHP
php获取根域名方法汇总
2014/10/28 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
Python中使用中文的方法
2011/02/19 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
货车司机岗位职责
2014/03/18 职场文书
公司经理聘任书
2014/03/29 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
贪污检举信范文
2015/03/02 职场文书
导游词之清晏园
2019/11/22 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python