详解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编写android截屏脚本双击运行即可
Jul 21 Python
详解Python爬虫的基本写法
Jan 08 Python
Python 常用string函数详解
May 30 Python
django中的setting最佳配置小结
Nov 21 Python
Python之读取TXT文件的方法小结
Apr 27 Python
python通过zabbix api获取主机
Sep 17 Python
pycharm运行出现ImportError:No module named的解决方法
Oct 13 Python
python使用suds调用webservice接口的方法
Jan 03 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
python 使用shutil复制图片的例子
Dec 13 Python
python 等差数列末项计算方式
May 03 Python
python在地图上画比例的实例详解
Nov 13 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 stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
PHP生成唯一订单号
2015/07/05 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python中防止sql注入的方法详解
2017/02/25 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
python super()函数的基本使用
2020/09/10 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
酷瑞网络科技面试题
2012/03/30 面试题
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
超市业务员岗位职责
2013/12/05 职场文书
高一物理教学反思
2014/01/24 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
党员公开承诺书内容
2014/05/20 职场文书
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS