1. 程式人生 > >Python正則表示式整理

Python正則表示式整理

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}')是不能匹配的;

後面的字元分別表示的是:

  1. “\d”表示匹配數字,“\D”表示匹配非數字;
  2. “\s”表示的是空白,“\S”表示的是非空白;
  3. “\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檔案中的標籤是否有效;