详解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中日期和时间格式化输出的方法小结
Mar 19 Python
用PyQt进行Python图形界面的程序的开发的入门指引
Apr 14 Python
python基础入门学习笔记(Python环境搭建)
Jan 13 Python
python 全局变量的import机制介绍
Sep 07 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
Python2.x与3​​.x版本有哪些区别
Jul 09 Python
用Python制作mini翻译器的实现示例
Aug 17 Python
Python制作一个随机抽奖小工具的实现
Jul 07 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制作简单的内容采集器的原理分析
2008/10/01 PHP
PHP模块memcached使用指南
2014/12/08 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
react-navigation之动态修改title的内容
2018/09/26 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
关于uniApp editor微信滑动问题
2021/01/15 Javascript
Python格式化日期时间操作示例
2018/06/28 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
运动会广播稿60字
2014/01/15 职场文书
金融管理应届生求职信
2014/02/20 职场文书
干部作风建设心得体会
2014/10/22 职场文书
优秀团员事迹材料
2014/12/25 职场文书
海上钢琴师观后感
2015/06/03 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
单位接收证明格式
2015/06/18 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
如何书写邀请函?
2019/06/24 职场文书