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实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
pandas删除指定行详解
Apr 04 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
wxPython实现文本框基础组件
Nov 18 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
python Plotly绘图工具的简单使用
Mar 03 Python
Python中实现输入一个整数的案例
May 03 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 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
也谈 PHP 和 MYSQL
2006/10/09 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
动态加载js的几种方法
2006/10/23 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
python append、extend与insert的区别
2016/10/13 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
Django日志及中间件模块应用案例
2020/09/10 Python
商场消防安全责任书
2014/07/29 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL