详解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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
零基础写python爬虫之urllib2使用指南
Nov 05 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
python 循环while和for in简单实例
Aug 16 Python
打包发布Python模块的方法详解
Sep 18 Python
python爬取淘宝商品销量信息
Nov 16 Python
Python实现计算对象的内存大小示例
Jul 10 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
在Python 的线程中运行协程的方法
Feb 24 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
python实现三种随机请求头方式
Jan 05 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中遍历stdclass object的实现代码
2011/06/09 PHP
PHP的引用详解
2015/02/22 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
python通过http下载文件的方法详解
2019/07/26 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
客户代表实习人员自我鉴定
2013/09/27 职场文书
自我鉴定注意事项
2014/01/19 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
反邪教观后感
2015/06/11 职场文书
python实现简单反弹球游戏
2021/04/12 Python
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
讲解Python实例练习逆序输出字符串
2022/05/06 Python