python 正規表示式

2021-08-21 07:35:57 字數 2286 閱讀 5375

先看一下最後面特殊字元和表示式的含義,有乙個初步印象再返回來嘗試例子

呼叫方式:

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