详解python里使用正则表达式的分组命名方式

作者:caimouse 时间:2023-10-16 22:02:17 

详解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

标签:python,正则
0
投稿

猜你喜欢

  • FckEditor 配置手册中文教程详细说明

    2023-06-18 20:35:59
  • ASP中模拟PHP的关联数组

    2009-12-25 16:31:00
  • BootStrap学习笔记之nav导航栏和面包屑导航

    2023-08-16 12:33:22
  • PHP PDOStatement::fetch讲解

    2023-06-04 20:06:02
  • Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法

    2021-09-04 06:14:32
  • Vue登录拦截 登录后继续跳转指定页面的操作

    2024-05-28 15:48:14
  • python检测远程服务器tcp端口的方法

    2021-02-18 22:49:44
  • 如何利用Python动态展示排序算法

    2022-03-06 17:23:48
  • golang常用库之配置文件解析库-viper使用详解

    2024-02-17 18:36:46
  • python+openCV利用摄像头实现人员活动检测

    2021-06-23 10:39:36
  • asp 在线备份与恢复sql server数据库的代码

    2010-07-31 18:52:00
  • Alfred + Gitee搭建免费图床的使用实例详解

    2023-10-04 08:24:30
  • Python中如何向函数传递列表

    2022-09-23 19:10:23
  • go程序测试CPU占用率统计ps vs top两种不同方式对比

    2024-05-05 09:27:04
  • 解决django 向mysql中写入中文字符出错的问题

    2024-01-23 20:39:00
  • sql无效字符 执行sql语句报错解决方案

    2023-06-24 19:47:45
  • SQL JOIN 连接详细介绍及简单使用实例

    2024-01-22 00:27:50
  • 使用keras框架cnn+ctc_loss识别不定长字符图片操作

    2022-05-13 22:15:42
  • Python减少循环层次和缩进的技巧分析

    2023-10-07 21:41:09
  • mysql一对多关联查询分页错误问题的解决方法

    2024-01-28 05:18:44
  • asp之家 网络编程 m.aspxhome.com