1. 程式人生 > >python進階十_正則表達式(一)

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

之前 dsm 常見 style ear 單個字符 src ace 例如

近期狀態一直不太好,至於原因。怎麽說呢,不好說,總之就是糾結中覆蓋著糾結。心思全然不在點上。希望能夠借助Python的學習以及博客的撰寫來調整回來,有的時候回頭想一想。假設真的是我自己的問題呢,曾經我常常跟別人說,千萬不要懷疑自己。由於非常清楚一旦連自己都變的不可信。那這個世界就太瘋狂了,當一遍一遍的問我,如今連我自己都快懷疑自己了,我一遍一遍的說服別人,想不到如今居然須要自己去說服自己,何其的悲哀~

一.正則表達式基礎

1.基本概念

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

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

2.常見構造

以下這張圖是盜用的,出處http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

技術分享

二.正則表達式實踐

1.查找文本中的模式

re模塊是我們在Python中使用最多的正則表達式模塊,常見使用方法就是搜索文本中的模式。search()函數以模式和要掃描的文本作為輸入,假設找到匹配這個模式的則返回一個match對象。否則返回None,每一個Match對象都包括有關匹配性質的信息,包括原輸入字符串,使用的正則表達式以及模式在原字符串中出現的位置。

示比例如以下:

技術分享

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

2.編譯表達式

re模塊包括非常多模塊級函數,用於處理文本字符串的正則表達式,可是對於程序頻繁使用的表達式,編譯這些表達式會顯得非常高效,re模塊中的compile()函數就體現出了它的價值。例如以下:

技術分享

3.多重匹配

在之前的樣例中。我們都是使用的search()來查找文本的單個實例。可是假如我想查找一個文本中全部不重疊的滿足模式的字串怎麽辦呢?這裏就要用到findall(),示比例如以下:

技術分享

Finditer()返回一個叠代器。指向

match的實例


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