详解python里使用正则表达式的分组命名方式
作者:caimouse 发布时间:2023-10-16 22:02:17
标签:python,正则
详解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'}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/caimouse/article/details/78320823
0
投稿
猜你喜欢
- 一、model.py1.1 Channel Shuffledef channel_shuffle(x: Tensor, groups: in
- 1.物体识别本案例实现对特殊颜色物体的识别,并实现根据物体位置的改变进行控制跟随。import cv2 as cv# 定义结构元素kerne
- doctest库就是一个测试用的标准库,从意义上我们可以看出是关于测试有关系的,基本上就是测试是否和自己想要的结果是否一致,经常能在编写文档
- 1.sort.Sort介绍使用sort.Slice进行排序,因为slice把struct抽象化了,且slice封装过了,简单的基础类型可以使
- Truncate是SQL中的一个删除数据表内容的语句,用法是:TRUNCATE TABLE [Table Name]。下面是对Truncat
- 作为一个新手,你需要以下3个步骤:1、用户注册 > 2、获取token > 3、调取数据数据内容:包含股票、基金、期货、债券、外
- 针对排序来说,order by 是我们使用非常频繁的关键字。结合之前我们对索引的了解再来看这篇文章会让我们深刻理解在排序的时候,是如何利用索
- 自己写PHP也有一年多了,然后编码问题却老是没有得到好的解决,自己的情况是这样的,网页显示完全正常,在phpmyadmin数据库显示中文乱码
- 本文实例讲述了Python subprocess模块功能与常见用法。分享给大家供大家参考,具体如下:一、简介subprocess最早在2.4
- 创建作业,执行以下命令 exec master..XP_cmdshell 'http://srm.rapoo.cn?op=sapin
- 1、概述在前面的文章中,我有分享了vue+drf+第三方滑动验证码接入的实现 (文中也留了分享图片验证码功能的实现),即本文将要分享的是基于
- 这10个asp处理网页编码转换的函数,不知何时收藏在我的电脑中,今天刚好看到了,拿出来与大家分享,这里各种常见的网页编码问题已经
- 环境配置gradio 安装 pip install gradiocv2 安装 pip install python-opencv实验原理cv
- 本文实例讲述了PHP使用JpGraph绘制折线图操作。分享给大家供大家参考,具体如下:下载jpgraph类库,使用的是src目录下的类文件。
- 为什么要引入线程池如果在程序中经常要用到线程,频繁的创建和销毁线程会浪费很多硬件资源,所以需要把线程和任务分离。线程可以反复利用,省去了重复
- CSS重设就是由于各种浏览器解释CSS样式的初始值有所不同,导致设计师在没有定义某个CSS属性时,不同的浏览器会按照自己的默认值来为没有定义
- 本文实例讲述了PHP实现的获取文件mimes类型工具类。分享给大家供大家参考,具体如下:<?php/* * Copyright 201
- 本文实例讲述了python多线程使用方法。分享给大家供大家参考,具体如下:threading 模块支持守护线程, 其工作方式是:守护线程一般
- 文章介绍内容:操作MySQL数据库:创建MySQL数据表;向表中插入记录;其他数据库操作。面试题:如何创建MySQL数据表?如何向MySQL
- pandas函数中pandas.DataFrame.from_dict 直接从字典构建DataFrame 。参数解析DataFrame fr