详解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 随机数生成的代码的详细分析
May 15 Python
给Python中的MySQLdb模块添加超时功能的教程
May 05 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
Python的时间模块datetime详解
Apr 17 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
详解django的serializer序列化model几种方法
Oct 16 Python
python生成器与迭代器详解
Jan 01 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
django-filter和普通查询的例子
Aug 12 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 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
使用dump函数,给php加断点测试
2013/06/25 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
详细解读Python中解析XML数据的方法
2015/10/15 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
Python生成器以及应用实例解析
2018/02/08 Python
python遍历小写英文字母的方法
2019/01/02 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
提高python代码运行效率的一些建议
2020/09/29 Python
Pycharm安装python库的方法
2020/11/24 Python
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
《给予树》教学反思
2016/03/03 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
python flask框架快速入门
2021/05/14 Python
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python