Python正則匹配中的最小匹配和貪婪匹配


 

# -*- coding:utf-8 -*-
#! python2
import re
string = 'abe(ac)ad)'
p1 = re.compile(r'[(](.*?)[)]', re.S) #最小匹配
p2 = re.compile(r'[(](.*)[)]', re.S)  #貪婪匹配
print(re.findall(p1, string))
print(re.findall(p2, string))

 

輸出:

  ['ac']
  ['ac)ad']

1.正則匹配串前加了r就是為了使得里面的特殊符號不用寫反斜杠了。

2.[ ]具有去特殊符號的作用,也就是說[(]里的(只是平凡的括號

3.正則匹配串里的()是為了提取整個正則串中符合括號里的正則的內容

4. 是為了表示除了換行符的任一字符。*克林閉包,出現0次或無限次。

5. 加了?是最小匹配,不加是貪婪匹配。

6. re.S是為了讓.表示除了換行符的任一字符。


免責聲明!

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



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