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 相关文章推荐
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
python基础教程项目五之虚拟茶话会
Apr 02 Python
78行Python代码实现现微信撤回消息功能
Jul 26 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
python画双y轴图像的示例代码
Jul 07 Python
pytorch 输出中间层特征的实例
Aug 17 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
Dec 27 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 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 header示例代码(推荐)
2010/09/08 PHP
php绘制一条弧线的方法
2015/01/24 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
php中使用websocket详解
2016/09/23 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
python版本五子棋的实现代码
2018/12/11 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
CSS3 特效范例整理
2011/08/22 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
化学学院毕业生自荐信范文
2013/12/17 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
未中标通知书
2015/04/17 职场文书
新郎结婚感言
2015/07/31 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
MySQL 分组查询的优化方法
2021/05/12 MySQL
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
Python Django项目和应用的创建详解
2021/11/27 Python