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实现从URL地址提取文件名的方法
May 15 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 Python
python中subprocess批量执行linux命令
Apr 27 Python
Python 删除连续出现的指定字符的实例
Jun 29 Python
在python下读取并展示raw格式的图片实例
Jan 24 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 Python
Django使用Profile扩展User模块方式
May 14 Python
使用 django orm 写 exists 条件过滤实例
May 20 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
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
关于爱情的广播稿
2014/01/16 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
本科应届生求职信
2014/08/05 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
店铺转让协议书
2014/12/02 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
javascript对象3个属性特征
2021/11/17 Javascript
python对文档中元素删除,替换操作
2022/04/02 Python
DIY胆机必读:各国电子管评价
2022/04/06 无线电
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android