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