详解python里使用正则表达式的分组命名方式


Posted in Python onOctober 24, 2017

详解python里使用正则表达式的分组命名方式

分组匹配的模式,可以通过groups()来全部访问匹配的元组,也可以通过group()函数来按分组方式来访问,但是这里只能通过数字索引来访问,如果某一天产品经理需要修改需求,让你在它们之中添加一个分组,这样一来,就会导致匹配的数组的索引的变化,作为开发人员的你,必须得一行一行代码地修改。因此聪明的开发人员又想到一个好方法,把这些分组进行命名,只需要对名称进行访问分组,不通过索引来访问了,就可以避免这个问题。那么怎么样来命名呢?可以采用(?P<name>pattern)的格式来命名。

例子如下:

#python 3.6 
#蔡军生  
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
import re 
 
text = 'This is some text -- with punctuation.' 
 
print(text) 
print() 
 
patterns = [ 
  r'^(?P<first_word>\w+)', 
  r'(?P<last_word>\w+)\S*$', 
  r'(?P<t_word>\bt\w+)\W+(?P<other_word>\w+)', 
  r'(?P<ends_with_t>\w+t)\b', 
] 
 
for pattern in patterns: 
  regex = re.compile(pattern) 
  match = regex.search(text) 
  print("'{}'".format(pattern)) 
  print(' ', match.groups()) 
  print(' ', match.groupdict()) 
  print()

结果输出如下:

This is some text -- with punctuation.

'^(?P<first_word>\w+)'
  ('This',)
  {'first_word': 'This'}

'(?P<last_word>\w+)\S*$'
  ('punctuation',)
  {'last_word': 'punctuation'}

'(?P<t_word>\bt\w+)\W+(?P<other_word>\w+)'
  ('text', 'with')
  {'t_word': 'text', 'other_word': 'with'}

'(?P<ends_with_t>\w+t)\b'
  ('text',)
  {'ends_with_t': 'text'}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python的常见命令注入威胁
Feb 18 Python
python编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
详解Python with/as使用说明
Dec 13 Python
用Python读取几十万行文本数据
Dec 24 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
python 离散点图画法的实现
Apr 01 Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 #Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 #Python
浅谈python中copy和deepcopy中的区别
Oct 23 #Python
python的构建工具setup.py的方法使用示例
Oct 23 #Python
python使用pyqt写带界面工具的示例代码
Oct 23 #Python
基于Django的python验证码(实例讲解)
Oct 23 #Python
itchat接口使用示例
Oct 23 #Python
You might like
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
python异常和文件处理机制详解
2016/07/19 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
django输出html内容的实例
2018/05/27 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
2014年教师节演讲稿范文
2014/09/10 职场文书