Python正則表達式的主要作用是檢索、替換符合匹配規則的文本,什麼時候檢索,什麼時候替換,我們根據需求,選擇最合適的函數。
不管是檢索還是替換,都需要匹配規則,我們根據需要編寫了匹配規則,但我們寫的匹配規則計算機並不會直接用來匹配,計算機會把我們寫的匹配規則轉換成它的規則,這個過程我們叫做編譯(compile),這個編譯過程我們看不見,但比較耗時,為了提高效率,就將編譯過後的正則表達式放到緩存中,內存可能會影響其他程序,當我們需要優化佔用內存的時可以清除緩存(purge)。
【函數一】compile(pattern, flags=0)
我們編寫的正則表達式 pattern,指定使用的模式 flags 默認為0 即不使用任何模式
【函數二】 purge()
這個函數的作用是清除緩存中的正則表達式
【函數三】escape(pattern)
如果需要操作的文本中含有正則的元字符時,需要將元字符加上反斜扛 \ 去匹配自身,如果包含的元字符多了就顯得繁雜,這時就用這個函數
【函數四】findall(pattern, string, flags=0)
這時非常常用的函數,它作用是在待操作字符串(string)中尋找所有匹配正則表達式(pattern)的字串,返回一個列表,如果沒有匹配,返回一個空列表。
【函數五】finditer(pattern, string, flags=0)
與findall不同的是返回一個迭代器
【函數六】match(pattern, string, flags=0)
match是從字符串開始處開始查找,匹配一個就不再繼續查找,返回值為 一個SRE_Match 對象,找不到時返回 None。
【函數七】search(pattern, string, flags=0)
search與match類似,但並不限制從字符串開始處查找
【函數八】split(pattern, string, maxsplit=0, flags=0)
函數使用給定正則表達式(pattern)尋找切分字符串(string,)位置,按分割次數(maxsplit),返回包含切分後子串的列表 ,如果匹配不到,則返回包含原字符串的一個列表
【函數九】sub(pattern, repl, string, count=0, flags=0)
這個也是常用函數,替換函數,將正則表達式(pattern)匹配到的字符串替換為(repl)指定的字符串, 參數(count)用於指定最大替換次數
repl指定有三種方是:
1、固定的字符串
2、使用前面匹配的到的內容 \1 代表 pattern 中捕獲到的第一個分組的內容
3、使用函數型 repl 參數,處理匹配到的 SRE_Match 對象