详解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 中文字符串的处理实现代码
Oct 25 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
Python Django框架模板渲染功能示例
Nov 08 Python
django queryset 去重 .distinct()说明
May 19 Python
Python爬虫防封ip的一些技巧
Aug 06 Python
python 基于opencv 绘制图像轮廓
Dec 11 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
apache+php+mysql安装配置方法小结
2010/08/01 PHP
php中执行系统命令的方法
2015/03/21 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
php支付宝APP支付功能
2020/07/29 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
JS 表单验证大全
2011/11/23 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
Python全局变量操作详解
2015/04/14 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
itchat接口使用示例
2017/10/23 Python
python去除文件中重复的行实例
2018/06/29 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python如何把字符串类型list转换成list
2020/02/18 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
入党自我鉴定范文
2013/10/04 职场文书
室内设计专业个人的自我评价
2013/12/18 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
房地产还款计划书
2014/01/10 职场文书
音乐专业自荐信
2014/02/07 职场文书
新春文艺演出主持词
2014/03/27 职场文书
社区创先争优承诺书
2014/08/30 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python