详解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 相关文章推荐
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
详解Python中的__new__()方法的使用
Apr 09 Python
九步学会Python装饰器
May 09 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
May 09 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
Python如何计算语句执行时间
Nov 22 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
最小二乘法及其python实现详解
Feb 24 Python
python spilt()分隔字符串的实现示例
May 21 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 UTF8编码内的繁简转换类
2009/07/20 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
js中iframe调用父页面的方法
2014/10/30 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
javascript实现日历效果
2019/06/17 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
PHP两种查询函数array/row的区别
2013/06/03 面试题
产品促销活动策划书
2014/01/15 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
工程项目合作意向书
2015/05/08 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android