本章的內容主要是爲講解在正則表達式中經常使用的.*?和re.S!python
在正則表達式中有貪婪匹配和最小匹配:以下爲貪婪匹配(.*)正則表達式
1 import re 2 match = re.search(r'PY.*', 'PYANBNCNDN') 3 print(match.group(0))
如上的代碼顯示的結果是PYANBNCNDA,爲貪婪匹配,會把整個字符串進行匹配,把可以知足條件的子串提取出來!spa
以下爲最小匹配:(.*?)code
1 import re 2 match = re.search(r'PY.*?N', 'PYANBNCNDN') 3 print(match.group(0))
如上的代碼顯示的結果是PYAN,爲最小匹配,會從頭開始匹配,當匹配到知足條件時,不會再去匹配!blog
re.S字符串
在python的正則表達式中,有一個參數re.S。它表示「.」的做用擴展到整個字符串,包括「\n」。class
1 a = ''' 2 asdfhellopass: 3 worldaf 4 ''' 5 6 b = re.findall('hello(.*?)world', a) 7 c = re.findall('hello(.*?)world', a, re.S) 8 print(b) 9 print(c) 10 11 12 [] 13 ['pass:\n ']
拓展:import