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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
Sublime开发python程序的示例代码
Jan 24 Python
Python装饰器(decorator)定义与用法详解
Feb 09 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
Django开发中的日志输出的方法
Jul 02 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
详解爬虫被封的问题
Apr 23 Python
opencv python图像梯度实例详解
Feb 04 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
如何在向量化NumPy数组上进行移动窗口
May 18 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中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
checkbox选中与未选中判断示例
2014/08/04 Javascript
js数组的操作指南
2014/12/28 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
python实现学生管理系统
2018/01/11 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
法学函授自我鉴定
2014/02/06 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
推销搭讪开场白
2015/05/28 职场文书
文明礼仪主题班会
2015/08/13 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS