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封装对象实现时间效果
Apr 23 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
python实现对输入的密文加密
Mar 20 Python
详解numpy的argmax的具体使用
May 27 Python
django最快程序开发流程详解
Jul 19 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
python实现录音功能(可随时停止录音)
Oct 26 Python
详解Django中异步任务之django-celery
Nov 05 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
php实现图片缩放功能类
2013/12/18 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
input 高级限制级用法
2009/03/26 Javascript
js arguments.callee的应用代码
2009/05/07 Javascript
读jQuery之三(构建选择器)
2011/06/11 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
电子专业推荐信范文
2013/11/18 职场文书
会计核算科岗位职责
2014/03/19 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
施工工地安全标语
2014/06/07 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
MySQL深分页问题解决思路
2022/12/24 MySQL