Python 正規表示式的使用

2021-09-26 10:50:29 字數 1675 閱讀 9524

我們在處理字串時,經常會查詢符合某些浮渣規則的字串的需求。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的**。

一、正規表示式語法

行定位符

行定位符就是用來描述字串的便界。「^」表示行的開始;"$"表示行的結尾。如:

^tm 			#表示要匹配字串tm的開始位置是行頭

tm$ #表示要匹配字串tm的開始位置是結尾

2.元字元

**說明

.匹配除換行符以外的任意字元

\w匹配字母或數字或下劃線

\s匹配任意的空白符

\d匹配數字

\b匹配單詞的開始或結束

^匹配字串的開始

$匹配字串的結束

3.限定符

限定符說i明

?匹配前面的字元零次或一次

+匹配前面的字元一次或多次

*匹配前面的字元零次或多次

匹配前面的字元n次

匹配前面的字元至少n次

匹配前面的字元最少n次,最多m次

4.排除字元

當我們匹配不符合指定字元集合的字串時,可以用到以下的表示式:

[^a-za-z]				#表示用於匹配乙個不是字母的字元
5.選擇字元

試想以下,如何匹配身份證號碼?首先需要了解身份證號碼的規則。身份證號碼長度為15位或18位,如果位15位,則全部是數字;如果位18位,前17位是數字,最後一位是檢驗位,可能是數字或字母。

在上述的描述中,包含著條件選擇的邏輯,這就要使用選擇字元(|)來實現,該字元可理解是「或」,表示式則如下:

(^\d$) | (^\d$) |(^\d) (\d|x|x)$			#表示可以匹配15為數字或者18 為數字,或者17位數字,最後一位可以是數字或者是x或者是x。
6.轉義字元

正規表示式中轉義字(\)和python中大同小異,都是將特殊字元(「.」,"?","")等轉化普通的字元。

用正規表示式匹配如127.0.0.2.1這樣的ip位址,直接使用字元,格式為:

[1-9].[0-9].[0-9].[0-9]					#[1-9]表示在1到9的數字中取任意的數字,表示只能是1到3 的長度
但是這樣顯然不是正確的,因為「.」可以匹配任意的字元,這樣匹配的話,會將1271011011這樣的字元匹配出來,所以就要用到轉義字元(\),格式為:

[1-9]\.[0-9]\.[0-9]\.[0-9]			#[1-9]表示在1到9的數字中取任意的數字,表示只能是1到3 的長度
7.在python中使用正規表示式的語法

在python中使用正規表示式時,是將其作為模式字串使用的。如將匹配不是字串的乙個字元的正規表示式表示為模糊字串,可以使用下面的**:

'[^a-za-z]'
匹配以字母m開頭的單詞的正規表示式轉換為模式字串,則不能直接在其兩側新增引號定界符,**為:

'\\bm\\w*\\b'
注意,由於模式字串中可能會包含大量的特殊字元和反斜槓,所以需要寫為原生字串,也即是在模式字串前加r或r.如上面的模式字串採用原生字串表示就是:

r'\\bm\\w*\\b'
謝謝!

python正規表示式及使用正規表示式的例子

正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...

Python正規表示式使用

python正規表示式使用 正規表示式不是python內建的功能,所以需要引入import re模組才可以使用。正規表示式的功能很多,但是我們通常使用的功能也就是那幾個,這裡對工作中經常使用到的正規表示式進行乙個系統的總結。1.字元 匹配除了換行符 n 外的字元 轉義字元,使後乙個字元改變以前的意思...

python 正規表示式使用

場景 替換很多動態資料的時候,會重複很多的條件判斷if,replace。作用 完成多步,同時去匹配符合特定規則的字串,完成通用的正則匹配 正規表示式是一種通用的字串匹配技術,是不會因為程式語言不同發生變化。想要查詢某種特徵的,具有一定規則的字串,都是可以嘗試使用正規表示式 jsonpath,xpat...