python正規表示式

2021-09-29 23:18:56 字數 2219 閱讀 4964

re 模組使 python 語言擁有全部的正規表示式功能。提供了與這些方法功能完全一致的函式,這些函式使用乙個模式字串做為它們的第乙個引數。

compile 函式根據乙個模式字串和可選的標誌引數生成乙個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。標點符號只有被轉義時才匹配自身,否則它們表示特殊的含義。反斜槓本身需要使用反斜槓轉義。

由於正規表示式通常都包含反斜槓,所以你最好使用原始字串來表示它們。模式元素(如 r'\t',等價於 '\\t')匹配相應的特殊字元。

方法名稱

格式說明

findall

re.findall(表示式,字串)

返回所有滿足匹配條件的結果,放在列表裡

search

re.search(表示式,字串).groups()

函式會在字串內查詢模式匹配,只到找到第乙個匹配然後返回乙個包含匹配資訊的物件,該物件可以
通過呼叫group()方法得到匹配的字串,如果字串沒有匹配,則返回none。

match    

re.match(表示式,字串).groups()

同search,不過盡在字串開始處進行匹配

split  

re.split(表示式,字串)

按表示式對字串分割,返回列表

subre.sub(表示式,替換字元,字串,count)

按表示式型別替換成新的字元,返回字串

subn

re.subn(表示式,替換字元,字串,count)

按表示式型別替換成新的字串,返回乙個元組,存放這替換結果和替換次數

compile

re.compile(表示式)

將正規表示式編譯成為乙個 正規表示式物件

finditer

re.finditer(表示式,字串)

finditer返回乙個存放匹配結果的迭代器

#(1)findall

import re

ret = re.findall('\d','adsf123456we7we') #匹配字串中是數字的字元,並將匹配值返回到列表中

print(ret)

'''結果:

['1', '2', '3', '4', '5', '6', '7']

'''#(2)search

ret = re.search('\d','adsf123456we7we').group() #按照表示式匹配到第乙個值就返回

print(ret)

'''結果:

1'''

#(3)match

ret = re.match('\w','adsf123456we7we').group() #按照表示式匹配開頭第乙個值,符合的話就返回,不符合就報錯

print(ret)

'''結果:

a'''

#(4)sub

ret = re.sub('\d','*','adsf123456we7we',0) #匹配字串中的數字,並且替換成*號,0表示替換所有

print(ret)

'''結果:

adsf******we*we

'''#(5)subn

ret = re.subn('\d','*','adsf123456we7we',0) #匹配字串中的數字,並且替換成*號,返回乙個元組,存放這替換結果和替換次數

print(ret)

'''結果:

('adsf******we*we', 7)

'''#(6)compile

obj = re.compile('\d') #將正規表示式編譯成乙個正規表示式物件

ret = obj.search('ads123asd456').group()

print(ret)

'''結果:

1'''

#(7)finditer

ret = re.finditer('\d','adsf451we15615adf16') #finditer返回乙個存放匹配結果的迭代器

print(ret)

for i in ret:

print(i.group())

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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...