Python爬蟲入門,如何使用正則表達式

按照之前的課程安排,此次課程應(yīng)該講python基礎(chǔ)第十六講爬蟲,但是如果正則一筆帶過大家可能還是沒辦法寫出自己想要實現(xiàn)的結(jié)果,所以把正則匹配詳解提前學習一下,此次課程的學習路線會翻譯官方的re模塊文檔,并且篩選出重點知識,完善文章中沒有的DEMO。

學完此次課程,我能做什么?

此次課程我們會系統(tǒng)的學習一下python的正則表達式,以及可以根據(jù)自己的需求寫出正確的正則表達式。

學習此次課程,需要多久?

15-20分鐘,建議每個表達式跟著實踐一下,加深印象

課程內(nèi)容

Python中正則表達式 在 re 模塊 — Regular expression operations

Python中的re模塊提供與Perl類似的正則表達式匹配操作,但是要注意的是

需要注意的是:正則匹配時 表達式和要查詢的字符串可以是 unicode字符串,也可是8-bit 字符串,但是兩種模式不可以混合使用,也就是說 表達式和要查詢的字符串必須一致。

正則表達式特殊字符:

.(點): 默認模式下,.可以匹配除了換行外的所有字符,如果需要匹配換行,可以傳參 re.DOTALL。

image

運行結(jié)果:

image

^:只匹配字符串的開始位置,可以使用re.MULTILINE(匹配多行),匹配每一行的開始位置。

image

代碼中每一行的開頭都有ae字符串,所以開啟多行模式后,會匹配兩個結(jié)果。

運行結(jié)果:

image

$ : 與^相反,匹配字符串的結(jié)束位置,可以使用re.MULTILINE(匹配多行),匹配每一行的結(jié)尾位置。

image

運行結(jié)果:

image
  • : 匹配0個或多個的表達式
image

運行結(jié)果:

image

分析:c*表示,匹配字符"c"0次或者多次,也就是說會匹配 a,ac。

  • : 匹配1個或多個的表達式
image

運行結(jié)果:

image

分析:匹配字符a并且c一次或者多次,所以會匹配ac或者accccc

? : 匹配0次或1次,非貪婪方式

image

運行結(jié)果:

image

分析:表達式“ac?” 匹配字符a或者ac(?只匹配0次或者1次,比較懶惰,不像上面的+或者*會匹配多次)

.? : 這三個特殊符號上面都講過了,.是匹配任意字符匹配0次或者多次,連在一起使用也就是匹配全文了,加上?號,非貪婪模式匹配,將盡可能少的匹配結(jié)果。

image

匹配結(jié)果:

image

小結(jié)

正則匹配的語法是通用的,大家學會這些特殊字符,無論什么語言都能迅速入門。所以有必要好好學習一下。

接下來學習什么?

Python的基礎(chǔ)教程暫時告一段落。

關(guān)注公眾號,回復 Python基礎(chǔ) 下載全部代碼+PDF版電子書

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • python的re模塊--細說正則表達式 可能是東半球最詳細最全面的re教程,翻譯自官方文檔,因為官方文檔寫的是真...
    立而人閱讀 23,432評論 4 46
  • Python中的正則表達式(re) import rere.match #從開始位置開始匹配,如果開頭沒有則無re...
    BigJeffWang閱讀 7,577評論 0 99
  • 搞懂Python 正則表達式用法 Python 正則表達式 正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一...
    廈熱閱讀 1,755評論 0 2
  • re模塊手冊 本模塊提供了和Perl里的正則表達式類似的功能,不關(guān)是正則表達式本身還是被搜索的字符串,都可以...
    喜歡吃栗子閱讀 4,189評論 0 13
  • 【道德經(jīng)妙解序文】 道德經(jīng)流傳兩千五百多年,版本很多種,為道德經(jīng)注解的超過一千種版本。雖注解的版本很多,一般人還是...
    愛相續(xù)閱讀 1,300評論 0 0

友情鏈接更多精彩內(nèi)容