• 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:UsersAdministratorAppDataLocalProgramsPythonPython35-32python.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 is == 区别
    python 元类 type metaclass
    树莓派 zero w 一根线使用
    python 类装饰器
    Oracle创建用户
    hibernate使用原生SQL查询
    工作流 jBMP4.4表结构
    (Mark)Myeclipse10.6 下怎么安装Jad插件
    (Mark=转)ehcache memcache redis
    Oracle 常用命令
  • 原文地址:https://www.cnblogs.com/xzy186/p/14267717.html
Copyright © 2020-2023  润新知