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中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 Python
python结合API实现即时天气信息
Jan 19 Python
Python环境变量设置方法
Aug 28 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
python中virtualenvwrapper安装与使用
May 20 Python
Python实现的读取/更改/写入xml文件操作示例
Aug 30 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
Python多线程threading模块用法实例分析
May 22 Python
PyQt5图形界面播放音乐的实例
Jun 17 Python
Python如何实现转换URL详解
Jul 02 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 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检查日期函数checkdate用法实例
2015/03/19 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
Javascript的比较汇总
2016/07/25 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
vue的for循环使用方法
2019/02/12 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
Python内置数据类型详解
2014/08/18 Python
在Python中关于中文编码问题的处理建议
2015/04/08 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
Python requests获取网页常用方法解析
2020/02/20 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
排查整治工作方案
2014/06/09 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
优秀党员先进材料
2014/12/18 职场文书
孔庙导游词
2015/02/04 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书