python的re模块中的?P<name>和?p=name以及/g<name>使用方法
首先查看下面的代码:
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 import re 5 6 7 test_line = r'ab123abcABC456def789ggh' # 定义一个字符串变量test_line 8 aa = re.match(r'(?i)(?P<name>[\w]+)123(?P=name)c(?P=name)', test_line).group() # 定义变量aa,语句中(?!)意思是忽略大小写,?P<name>是为数组命名,?P=name是在同一个语句中重复使用该数组名称匹配项 9 bb = re.sub(r'(?i)(?P<name>[\w])', r'\g<name>+\g<name>,', test_line) # 定义变量bb,语句中\g<name>是在不同语句中重复使用该数组名称匹配项 10 print(aa) # 打印变量aa的值 11 print(bb) # 打印变量bb的值
执行结果:
C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\python.exe C:/Users/Administrator/Desktop/mypython/test.py
ab123abcAB
a+a,b+b,1+1,2+2,3+3,a+a,b+b,c+c,A+A,B+B,C+C,4+4,5+5,6+6,d+d,e+e,f+f,7+7,8+8,9+9,g+g,g+g,h+h,
进程已结束,退出代码0
从执行结果可以看出,?P<name>是为group定义一个name标签,?P=name是在同一个语句中使用name标签,\g<name>则是在不同语句中使用name标签。
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本