python re 模塊學習筆記

一.經常使用方法正則表達式

  1. re.compile(pattern,flags=0) 編譯正則表達式,返回regexobject對象,而後能夠經過regexobject對象調用match()和search()方法. 能夠實現正則代碼的重用.編程

  2. re.serch(pattern,string,flags=0) 在正則表達式中查找,是否匹配正則表達式.返回_sre.SRE_Match對象,若是不能匹配返回None.緩存

  3. re.match(pattern,string,flags=0) 字符串的開頭是否能匹配正則表達式.返回_sre.SRE_Match對象,若是不能匹配返回None.函數

  4. re.split(pattern,string,maxsplit=0) 經過正則表達式將字符串分離.若是用括號將正則表達式闊起來,那麼匹配的字符串也會被列入list中返回.maxsplit是分離的次數,maxsplit=1分離一次,默認爲0,不限制.spa

若是字符串的開始或結尾就能匹配,返回list將會以空串開始或結尾.對象

若是字符串不能匹配,將會返回整個字符串的list.字符串

  1. re.finditer(pattern,string,flags=0) 找到 RE 匹配的全部子串,並把它們做爲一個迭代器返回. 這個匹配是從左到右有序地返回. 若是無匹配,返回空列表.string

  2. re.sub(pattern,real,string,count=0,flags=0) 找到 RE 匹配的全部子串, 並將其用一個不一樣的字符串替換. 可選參數 count 是模式匹配後替換的最大次數; count 必須是非負整數. 缺省值是 0 表示替換全部的匹配. 若是無匹配,字符串將會無改變地返回.it

  3. re.subn(pattern,real,string,count=0,flags=0) 與re.sub方法做用同樣,但返回的是包含新字符串和替換執行次數的兩元組。編譯

  4. re.escape(string) 對字符串中的非字母數字進行轉義

  5. re.purge() 清空緩存中的正則表達式

備註:. match和search的區別 1.match 是從字符串的起點開始作匹配,只有且僅當被匹配的字符串開頭就能匹配或從poss參數的位置開始就能匹配時纔會成功. 2. search 是從字符串作任意匹配(perl默認).

二. 正則表達式對象

  1. re.RegexObject re.compile()返回RegexObject對象

  2. re.MatchObject group()返回被 RE 匹配的字符串 start()返回匹配開始的位置 end()返回匹配結束的位置 span()返回一個元組包含匹配 (開始,結束) 的位置

三. 編譯標誌 編譯標誌讓你能夠修改正則表達式的一些運行方式。在 re 模塊中標誌可使用兩個名字,一個是全名如 IGNORECASE,一個是縮寫,一字母形式如 I。(若是你熟悉 Perl 的模式修改,一字母形式使用一樣的字母;例如 re.VERBOSE的縮寫形式是 re.X。)多個標誌能夠經過按位 OR-ing 它們來指定。如 re.I | re.M 被設置成 I 和 M 標誌:

I IGNORECASE

使匹配對大小寫不敏感;字符類和字符串匹配字母時忽略大小寫。舉個例子,[A-Z]也能夠匹配小寫字母,Spam 能夠匹配 "Spam", "spam", 或 "spAM"。這個小寫字母並不考慮當前位置。

L LOCALE

影響 "w, "W, "b, 和 "B,這取決於當前的本地化設置。

locales 是 C 語言庫中的一項功能,是用來爲須要考慮不一樣語言的編程提供幫助的。舉個例子,若是你正在處理法文文本,你想用 "w+ 來匹配文字,但 "w 只匹配字符類 [A-Za-z];它並不能匹配 "é" 或 "?"。若是你的系統配置適當且本地化設置爲法語,那麼內部的 C 函數將告訴程序 "é" 也應該被認爲是一個字母。當在編譯正則表達式時使用 LOCALE 標誌會獲得用這些 C 函數來處理 "w 後的編譯對象;這會更慢,但也會象你但願的那樣能夠用 "w+ 來匹配法文文本。

M MULTILINE

(此時 ^ 和 $ 不會被解釋; 它們將在 4.1 節被介紹.)

使用 "^" 只匹配字符串的開始,而 $ 則只匹配字符串的結尾和直接在換行前(若是有的話)的字符串結尾。當本標誌指定後, "^" 匹配字符串的開始和字符串中每行的開始。一樣的, $ 元字符匹配字符串結尾和字符串中每行的結尾(直接在每一個換行以前)。

S DOTALL

使 "." 特殊字符徹底匹配任何字符,包括換行;沒有這個標誌, "." 匹配除了換行外的任何字符。

X VERBOSE

該標誌經過給予你更靈活的格式以便你將正則表達式寫得更易於理解。當該標誌被指定時,在 RE 字符串中的空白符被忽略,除非該空白符在字符類中或在反斜槓之後;這可讓你更清晰地組織和縮進 RE。它也能夠容許你將註釋寫入 RE,這些註釋會被引擎忽略;註釋用 "#"號 來標識,不過該符號不能在字符串或反斜槓之後。

相關文章
相關標籤/搜索