详解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调用shell的方法
Nov 20 Python
浅谈五大Python Web框架
Mar 20 Python
AI人工智能 Python实现人机对话
Nov 13 Python
使用python验证代理ip是否可用的实现方法
Jul 25 Python
Django migrations 默认目录修改的方法教程
Sep 28 Python
python:接口间数据传递与调用方法
Dec 17 Python
BP神经网络原理及Python实现代码
Dec 18 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 Python
python爬虫---requests库的用法详解
Sep 28 Python
Python合并pdf文件的工具
Jul 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
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
Python线程threading模块用法详解
2020/02/26 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
宿舍打麻将检讨书
2014/01/24 职场文书
《中华少年》教学反思
2014/02/15 职场文书
促销活动方案模板
2014/02/24 职场文书
工作证明格式及范本
2014/09/12 职场文书
委托书范本
2014/09/13 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
2015年大学教师工作总结
2015/05/20 职场文书