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回调函数的使用方法
Jan 23 Python
Python实现的Google IP 可用性检测脚本
Apr 23 Python
浅析Python中的赋值和深浅拷贝
Aug 15 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
python中cPickle类使用方法详解
Aug 27 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 Python
Python视频编辑库MoviePy的使用
Apr 01 Python
什么是Python变量作用域
Jun 03 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
发现的以前不知道的函数
2006/09/19 Javascript
表单元素事件 (Form Element Events)
2009/07/17 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python与R语言的简要对比
2017/11/14 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
set在python里的含义和用法
2019/06/24 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
中西医专业毕业生职业规划书
2014/02/24 职场文书
决心书范文
2014/03/11 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
7个关于Python的经典基础案例
2021/11/07 Python