天天看點

python進階十_正規表達式(一)

最近狀态一直不太好,至于原因,怎麼說呢,不好說,總之就是糾結中覆寫着糾結,心思完全不在點上,希望可以借助Python的學習以及部落格的撰寫來調整回來,有的時候回頭想一想,如果真的是我自己的問題呢,以前我經常跟别人說,千萬不要懷疑自己,因為很清楚一旦連自己都變的不可信,那這個世界就太瘋狂了,當一遍一遍的問我,現在連我自己都快懷疑自己了,我一遍一遍的說服别人,想不到現在竟然需要自己去說服自己,何其的悲哀~

一.正規表達式基礎

正規表達式是計算機科學的一個概念。正規表達式使用單個字元串來描述、比對一系列符合某個句法規則的字元串。在很多文本編輯器裡,正規表達式通常被用來檢索、替換那些符合某個模式的文本。

正規表達式是對字元串操作的一種邏輯公式,就是用事先定義好的一些特定字元、以及這些特定字元的組合,組成一個“規則字元串”,用這個“規則字元串”來對字元串進行一種邏輯過濾。

二.正規表達式實踐

re子產品是我們在Python中使用最多的正規表達式子產品,常見用法就是搜尋文本中的模式,search()函數以模式和要掃描的文本作為輸入,如果找到比對這個模式的則傳回一個match對象,否則傳回None,每個Match對象都包含有關比對性質的資訊,包括原輸入字元串,使用的正規表達式以及模式在原字元串中出現的位置。示例如下:

本來是直接在subline Text2上面編譯的,但是發現編譯之後沒反應,稍微檢查一下之後發現自己SB了,存在中文路徑,就隻好用Python 編輯器來了。

re子產品包含很多子產品級函數,用于處理文本字元串的正規表達式,但是對于程式頻繁使用的表達式,編譯這些表達式會顯得很高效,re子產品中的compile()函數就展現出了它的價值,如下:

python進階十_正規表達式(一)

在之前的例子中,我們都是使用的search()來查找文本的單個執行個體,但是假如我想查找一個文本中所有不重疊的滿足模式的字串怎麼辦呢?這裡就要用到findall(),示例如下:

python進階十_正規表達式(一)

Finditer()傳回一個疊代器,指向match的執行個體