python的re模塊中的?P 和?p=name以及/g 使用方法


首先查看下面的代碼:

 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標簽。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM