按照以前的課程安排,這次課程應該講python基礎第十六講爬蟲,可是若是正則一筆帶過你們可能仍是沒辦法寫出本身想要實現的結果,因此把正則匹配詳解提早學習一下,這次課程的學習路線會翻譯官方的re模塊文檔,而且篩選出重點知識,完善文章中沒有的DEMO。python
這次課程咱們會系統的學習一下python的正則表達式,以及能夠根據本身的需求寫出正確的正則表達式。正則表達式
15-20分鐘,建議每一個表達式跟着實踐一下,加深印象express
Python中正則表達式 在 re 模塊 — Regular expression operations學習
Python中的re模塊提供與Perl相似的正則表達式匹配操做,可是要注意的是翻譯
須要注意的是:正則匹配時 表達式和要查詢的字符串能夠是 unicode字符串,也但是8-bit 字符串,可是兩種模式不能夠混合使用,也就是說 表達式和要查詢的字符串必須一致。3d
.(點): 默認模式下,.能夠匹配除了換行外的全部字符,若是須要匹配換行,能夠傳參 re.DOTALL。code
運行結果:blog
^:只匹配字符串的開始位置,可使用re.MULTILINE(匹配多行),匹配每一行的開始位置。教程
代碼中每一行的開頭都有ae字符串,因此開啓多行模式後,會匹配兩個結果。unicode
運行結果:
$ : 與^相反,匹配字符串的結束位置,可使用re.MULTILINE(匹配多行),匹配每一行的結尾位置。
運行結果:
運行結果:
分析:c*表示,匹配字符"c"0次或者屢次,也就是說會匹配 a,ac。
運行結果:
分析:匹配字符a而且c一次或者屢次,因此會匹配ac或者accccc
? : 匹配0次或1次,非貪婪方式
運行結果:
分析:表達式「ac?」 匹配字符a或者ac(?只匹配0次或者1次,比較懶惰,不像上面的+或者*會匹配屢次)
.? : 這三個特殊符號上面都講過了,.是匹配任意字符匹配0次或者屢次,連在一塊兒使用也就是匹配全文了,加上?號,非貪婪模式匹配,將盡量少的匹配結果。
匹配結果:
正則匹配的語法是通用的,你們學會這些特殊字符,不管什麼語言都能迅速入門。因此有必要好好學習一下。
Python的基礎教程暫時告一段落。