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语言技巧之三元运算符使用介绍
Mar 04 Python
Python标准库之循环器(itertools)介绍
Nov 25 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
python代码实现ID3决策树算法
Dec 20 Python
Python iter()函数用法实例分析
Mar 17 Python
Numpy array数据的增、删、改、查实例
Jun 04 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
python opencv实现证件照换底功能
Aug 19 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 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
2006/12/23 PHP
PHP-MySQL教程归纳总结
2008/06/07 PHP
PHP函数常用用法小结
2010/02/08 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
js实现纯前端压缩图片
2020/11/16 Javascript
python实现获取Ip归属地等信息
2016/08/27 Python
python常见排序算法基础教程
2017/04/13 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python如何处理程序无法打开
2020/06/16 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
理发店策划方案
2014/06/05 职场文书
企业宣传标语
2014/06/09 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python