详解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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
Windows系统下安装Python的SSH模块教程
Feb 05 Python
Python实现HTTP协议下的文件下载方法总结
Apr 20 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
Python+OpenCV实现车牌字符分割和识别
Mar 31 Python
python 处理string到hex脚本的方法
Oct 26 Python
Python 获取主机ip与hostname的方法
Dec 17 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
pytorch动态网络以及权重共享实例
Jan 06 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
django 装饰器 检测登录状态操作
Jul 02 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循环跳出的问题
2013/07/01 PHP
浅谈PHP的反射API
2017/02/26 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
小学生家长评语集锦
2014/01/30 职场文书
护士求职信
2014/07/05 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
通知书大全
2015/04/27 职场文书
教师师德承诺书2016
2016/03/25 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang