正則表達式中的.*?和python中re.S參數的詳解

本章的內容主要是爲講解在正則表達式中經常使用的.*?和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

相關文章
相關標籤/搜索