日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

python正則表達式使用實例 正則表達式測試工具( 三 )


而match函數(shù)是要從頭開始匹配,而字符串開頭多了個字母a,所以無法匹配,fullmatch函數(shù)需要完全相同,故也不匹配!
案例2:

python正則表達式使用實例 正則表達式測試工具

案例2刪除了text最開頭的字母a,這樣match函數(shù)就可以匹配啦,而fullmatch函數(shù)依然不能完全匹配!
案例3:
python正則表達式使用實例 正則表達式測試工具

案例3中,我們只留下一段文字,并且與正則表達式一致;這時fullmatch函數(shù)終于可以匹配了 。
完整案例:
python正則表達式使用實例 正則表達式測試工具

注意:查找 一個匹配項 返回的都是一個匹配對象(Match) 。
2.查找多個匹配項講完查找一項,現(xiàn)在來看看查找多項吧,查找多項函數(shù)主要有:findall函數(shù)與finditer函數(shù):
  1. findall: 從字符串任意位置查找,返回一個列表
  2. finditer:從字符串任意位置查找,返回一個迭代器
兩個方法基本類似,只不過一個是返回列表,一個是返回迭代器 。我們知道列表是一次性生成在內存中,而迭代器是需要使用時一點一點生成出來的,內存使用更優(yōu) 。
python正則表達式使用實例 正則表達式測試工具

如果可能存在大量的匹配項的話,建議使用finditer函數(shù),一般情況使用findall函數(shù)基本沒啥影響 。
3.分割re.split(pattern, string, maxsplit=0, flags=0)函數(shù):用pattern分開 string ,maxsplit表示最多進行分割次數(shù),flags表示模式,就是上面我們講解的常量!
python正則表達式使用實例 正則表達式測試工具

注意:str模塊也有一個 split函數(shù) ,那這兩個函數(shù)該怎么選呢?str.split函數(shù)功能簡單,不支持正則分割,而re.split支持正則 。
關于二者的速度如何? 豬哥實際測試了一下,在相同數(shù)據(jù)量的情況下使用re.split函數(shù)與str.split函數(shù)執(zhí)行次數(shù)與執(zhí)行時間對比圖:
python正則表達式使用實例 正則表達式測試工具

通過上圖對比發(fā)現(xiàn),1000次循環(huán)以內str.split函數(shù)更快,而循環(huán)次數(shù)1000次以上后re.split函數(shù)明顯更快,而且次數(shù)越多差距越大!
所以結論是:在 不需要正則支持 且 數(shù)據(jù)量和數(shù)次不多 的情況下使用str.split函數(shù)更合適,反之則使用re.split函數(shù) 。
注:具體執(zhí)行時間與測試數(shù)據(jù)有關!
4.替換替換主要有sub函數(shù)與subn函數(shù),他們功能類似!
先來看看sub函數(shù)的用法:
re.sub(pattern, repl, string, count=0, flags=0)函數(shù)參數(shù)講解:repl替換掉string中被pattern匹配的字符, count表示最大替換次數(shù),flags表示正則表達式的常量 。
值得注意的是:sub函數(shù)中的入?yún)ⅲ簉epl替換內容既可以是字符串,也可以是一個函數(shù)哦!如果repl為函數(shù)時,只能有一個入?yún)ⅲ篗atch匹配對象 。
python正則表達式使用實例 正則表達式測試工具

re.subn(pattern, repl, string, count=0, flags=0)函數(shù)與re.sub函數(shù)功能一致,只不過返回一個元組 (字符串, 替換次數(shù)) 。
python正則表達式使用實例 正則表達式測試工具

5.編譯正則對象compile函數(shù) 與 template函數(shù)將正則表達式的樣式編譯為一個 正則表達式對象 (正則對象Pattern),這個對象與re模塊有同樣的正則函數(shù)(后面我們會講解Pattern正則對象) 。
python正則表達式使用實例 正則表達式測試工具

而template函數(shù)與compile函數(shù)類似,只不過是增加了我們之前說的re.TEMPLATE模式,我們可以看看源碼 。

推薦閱讀