python 正規表示式

2022-07-22 04:06:13 字數 1507 閱讀 5463

一、python的正則

1.python的正規表示式利用re模組

importre#

使用match方法進行匹配操作

result =re.match(正規表示式,要匹配的字串)

#如果上一步匹配到資料的話,可以使用group方法來提取資料

result.group()

二、正則規則

1.字串

字元功能

.匹配任意1個字元(除了\n)

[ ]匹配[ ]中列舉的字元

\d匹配數字,即0-9

\d匹配非數字,即不是數字

\s匹配空白,即 空格,tab鍵

\s匹配非空白

\w匹配單詞字元,即a-z、a-z、0-9、_

\w匹配非單詞字元

2.表示數量

字元功能

*匹配前乙個字元出現0次或者無限次,即可有可無

+匹配前乙個字元出現1次或者無限次,即至少有1次

?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有

匹配前乙個字元出現m次

匹配前乙個字元至少出現m次

匹配前乙個字元出現從m到n次

3.字串前加r,表示自動轉義,在正規表示式中無須在使用\進行轉義

4.表示邊界

字元功能

^匹配字串開頭

$匹配字串結尾

\b匹配乙個單詞的邊界

\b匹配非單詞邊界

5.匹配分組

字元功能

|匹配左右任意乙個表示式

(ab)

將括號中字元作為乙個分組

\num

引用分組num匹配到的字串

(?p)

分組起別名

(?p=name)

引用別名為name分組匹配到的字串

#

分組匹配

s = "

"res = re.match(r

"<(.+)><(.+)>.+

", s)

print(res.group())

#起別名

s = "

"

re.match(r"<(?p.+)><(?p=.+)>.+", s)

6.match,search,findall

(1) match:從首字母開始開始匹配,string如果包含pattern子串,則匹配成功,返回match物件,失敗則返回none,若要完全匹配,pattern要以$結尾。

(2) search:若string中包含pattern子串,則返回match物件,否則返回none,注意,如果string中存在多個pattern子串,只返回第乙個。

(3) findall:返回string中所有與pattern相匹配的全部字串,返回形式為陣列。

7.使用sub方法實現批量替換

re.sub(正則規則,要替換成的字串或乙個函式(返回值相當於字串),要替換的字串)

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...