re 模块 分组特别说明
生活随笔
收集整理的這篇文章主要介紹了
re 模块 分组特别说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于分組優先以及 " | " 的細致練習
from django.test import TestCase import re# Create your tests here. ret = re.findall(r"-?\d+\.\d*|-?\d+", "1-2*(60+(-40.35/5)-(-4*3))") print(ret) # ['1', '-2', '60', '-40.35', '5', '-4', '3'] ret = re.findall(r"-?\d+\.\d*|(-?\d+)", "1-2*(60+(-40.35/5)-(-4*3))") print(ret) # ['1', '-2', '60', '', '5', '-4', '3'] ret = re.findall(r"-?\d+|-?\d+\.\d*", "1-2*(60+(-40.35/5)-(-4*3))") print(ret) # ['1', '-2', '60', '-40', '35', '5', '-4', '3'] ret = re.findall(r"-?\d+|(-?\d+\.\d*)", "1-2*(60+(-40.35/5)-(-4*3))") print(ret) # ['', '', '', '', '', '', '', ''] ret = re.findall(r"(-?\d+\.\d*)|-?\d+", "1-2*(60+(-40.35/5)-(-4*3))") print(ret) # ['', '', '', '-40.35', '', '', '']"|" 的匹配順序從左向右 , 而且一旦匹配上了就不會匹配后面的那段正則
"()" 是將被匹配的優先顯示, 但是匹配不中的內容會被用 "" 空字符串來表示
多個分組的匹配
先按照整體正則匹配, 然后在提取()中,如果有兩個分組(), 則以元組形式顯示
import res = "A B C D" # p1 = re.compile("\w+\s+\w+") # print(p1.findall(s)) # ['A B', 'C D'] p1 = re.compile("(\w+)\s+\w+") print(p1.findall(s)) # 第一步 ['A B','C D'] # ['(\w+)\s+\w+','(\w+)\s+\w+'] # 第二步 ['A','C'] # ['(\w+)', '(\w+)'] p1 = re.compile("(\w+)\s+(\w+)") print(p1.findall(s)) # 第一步 ['A B','C D'] # ['(\w+)\s+(\w+)','(\w+)\s+(\w+)']# 第二步 [('A','B'),('C','D')] # [('(\w+)','(\w+)'),('(\w+)','(\w+)')]
進階的練習
?
?
?
轉載于:https://www.cnblogs.com/shijieli/p/10624062.html
總結
以上是生活随笔為你收集整理的re 模块 分组特别说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali linux fuzz工具集简述
- 下一篇: Data Augmentation