# -*- 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是為了讓.表示除了換行符的任一字符。