先看一下最後面特殊字元和表示式的含義,有乙個初步印象再返回來嘗試例子
呼叫方式:
import re
函式:
pattern前的r表示之後是乙個純字串,編譯器不會編譯其中的轉義字元,如\n等,用來防止\的編譯衝突,一般正規表示式或系統路徑前使用。\b是轉義字元代表退格,但在正規表示式中表示匹配位於開頭或者結尾的空字串
檢索 re.match(pattern, string, flag)
match()從字串第乙個字元進行匹配,如果不符,直接返回none,否則返回的乙個class通過span()得到索引的區間
print(re.match('www', 'www.runoob.com'))
print(re.match('www', 'www.runoob.com').span())
print(re.match('com', 'www.runoob.com'))
#<_sre.sre_match object; span=(0, 3), match='www'>
#(0, 3)
#none
檢索 re.search(
pattern, string, flag
)
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配
#(0, 3)
#(11, 14)
檢索 findall(string, position, end position)
position 可指定起始匹配位置,預設為0,end position 指定結束位置,預設為字串長度
pattern = re.compile(r'\d+') # 查詢數字
result1 = pattern.findall('runoob 123 google 456')
result2 = pattern.findall('run88oob123google456', 0, 10)
#['123', '456']
#['88', '12']
檢索 re.finditer(pattern, string, flags)
返回的是乙個生成器
it = re.finditer("\d+","12a32bc43jf3")
for match in it:
print(match.group())
#12
#32
#43
#3
分割 re.split(pattern, string, maxsplit, flags)
找不到pattern則返回原字串
加()會一同返回分割的pattern
re.split('\w+', 'runoob! runoob! runoob.')
#['runoob', 'runoob', 'runoob', '']
re.split('(\w+)', 'runoob! runoob! runoob.')
#['runoob', '! ', 'runoob', '! ', 'runoob', '.', '']
re.split('\w+', 'runoob, runoob, runoob.', 1)
#['runoob', 'runoob, runoob.']
替換 re.sub(pattern, repl, string, count, flags)
phone = "2004-959-559 # 這是乙個國外**號碼"
num = re.sub('#.*$', "", phone)
print("**號碼是: ", num)
#**號碼是: 2004-959-559
num = re.sub('\d', "", phone)
print("**號碼是: ", num)
#**號碼是: 2004959559
編譯 re.compile(strpattern, flag)
可用於search,match等,例子見findall
特殊符號:
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模組的講解很簡單易懂,內容不多但起碼把人領進門了,...