Python正則表示式整理
阿新 • • 發佈:2018-12-18
Python正則表示式整理
一、正則表示式介紹
在不使用正則表示式的情況下,我們想要實現字串的匹配就必須要單獨的建立一個函式,通過呼叫函式來實現;為了減少程式碼的編寫,我們不妨將這些函式抽象出來,成為一個規則。
正則表示式概念
1、使用單個字串來描述匹配一系列符合某個句法規則的字串
2、是對字串操作的一種邏輯公式
3、應用場景:處理文字和資料
4、正則表示式過程:依次拿出表示式和文字中的字元比較,如果每一個字元都能匹配,則匹配成功;否則匹配失敗。
二、正則表示式re模組
1、匯入re模組
import re
2、正則表示式過程
例如:
首先呼叫re中的compile方法,生成一個Pattern物件,然後呼叫這個pattern物件的match等方法;
三、正則表示式語法
(一)匹配單個字元
其中,“.”表示可以匹配任意字元,例如re.match(r'{b}','{a}')是無法匹配的,但是re.match(r'{.}','{a}')可以匹配成功;
“[....]”表示匹配中括號中的任意字元,例如:re.match(r'{[abc]}','{a}')是匹配的,但是re.match(r'{[abc]}','{d}')是不能匹配的;
後面的字元分別表示的是:
- “\d”表示匹配數字,“\D”表示匹配非數字;
- “\s”表示的是空白,“\S”表示的是非空白;
- “\w”表示的是單詞字元(包括a-z,A-Z,0-9),“\W”表示的是非單詞字元;
如果要匹配“[a]”這種中括號裡面含有任意字元的情況,那麼需要在正則表示式中新增轉譯符。
ma = re.match(r'\[[\w]\]','[a]')
(二)匹配多個字元
(三)字串的邊界匹配
其中,“\A”表示指定的字串必須在開頭,例如:ma = re.match(r'\Aimooc[\w]*','imoocpython')可以匹配,但是ma = re.match(r'\Aimooc[\w]*','iimoocpython')不能匹配;同理,“\Z”表示指定字串必須在結尾。
(四)分組匹配
其中,第三種情況多用於匹配xml檔案中的標籤是否有效;