详解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处理PDF及生成多层PDF实例代码
Apr 24 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
python实现抽奖小程序
Apr 15 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
Python 识别12306图片验证码物品的实现示例
Jan 20 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 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最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
vue3.0 上手体验
2020/09/21 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
python实现快递价格查询系统
2020/03/03 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
用python写爬虫简单吗
2020/07/28 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
Python datetime 如何处理时区信息
2020/09/02 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
校园公益广告语
2014/03/13 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
怎么写工作检讨书
2014/11/16 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
中秋节慰问信
2015/02/15 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
Java的Object类的九种方法
2022/04/13 Java/Android