search 匹配就 返回乙個變數,通過group取匹配到的第乙個值,不匹配就返回none,group會報錯
match 相當於search的正規表示式中加了乙個'^'
spilt 返回列表,按照正則規則切割,預設匹配到的內容會被切掉
sub/subn 替換,按照正則規則去尋找要被替換掉的內容,subn返回元組,第二個值是替換的次數
compile 編譯乙個正規表示式,用這個結果去search match findall finditer 能夠節省時間
finditer 返回乙個迭代器,所有的結果都在這個迭代器中,需要通過迴圈+group的形式取值 能夠節省記憶體
使用re模組之前要匯入re模組才能用否則用不了,
匯入模組:import re
1 ret = re.findall('\d+','
age=19,出生年=2000,出生月=10')
2#返回所有滿足匹配條件的結果,都是放在列表中的,\d+在正規表示式的用法為匹配數字
3print
(ret)
4 結果:['
19', '
2000
', '
10']
1 ret = re.search('\d+','
age=19,出生年=2000,出生月=10')
2print
(ret)3#
結果:是記憶體位址,這是乙個正則匹配的結果,
4print(ret.group()) #
通過ret.group()獲取真正的結果5#
結果:6
#19
1 ret = re.match('\d+$
','age=19,出生年=2000,出生月=10')
2print
(ret)3#
結果:none
1 s = ('age=19,出生年=2000,出生月=10')
2print('
,切割:
',s.split('
,')) #
按,來切割
3 s1 = ('
age=19,出生年=2000,出生月=10')
4 ret = re.split('
\d+',s) #
按數字來切割
5print
(ret )6#
結果:,切割: ['age=19', '出生年=2000,出生月=10']7#
['age=', ',出生年=', ',出生月=', '']
1 s = ('age=19,出生年=2000,出生月=10')
2 ret = re.sub('
\d+','
*',s) #
把所有的數字替換成*3#
替換的次數自己可以定義例如替換一次ret = re.sub('\d+','*',s,1)
4print
(ret)5#
結果:age=*,出生年=*,出生月=*
1 s = ('age=19,出生年=2000,出生月=10')
2 ret = re.subn('
\d+','*'
,s)3
(ret)4#
結果:('age=*,出生年=*,出生月=*', 3)
1 ret = re.compile('\d+') #
已經完成編譯了
2print
(ret)3#
結果:re.compile('\\d+')
4 s = ('
age=19,出生年=2000,出生月=10')
5 res =ret.findall(s)
6print
(res)7#
結果:['19', '2000', '10']
1 s = ('age=19,出生年=2000,出生月=10')
2 ret = re.finditer('
\d+'
,s)3
(ret)4#
5#結果:返回乙個迭代器,所有的結果都在這個迭代器中,需要通過迴圈+group的形式取值 能夠節省記憶體
6for el in
ret:
7print
(el.group())8#
結果:199#
200010#
10
re模組常用方法
match string pos endpos string是待匹配的字串pos和endpos可選引數,指定字串的起始和終點位置,預設值分別是0和len 字串長度 match 方法 從起始位置開始查詢,一次匹配 re.match pattern,string,flags 0 result re.ma...
Python常用模組 re
python內部的re 傳聞中的正則模組,是無數初學者心中的噩夢,幾乎到了談正則色變的地步。1.正則是幹什麼的 正規表示式,又稱規則表示式。英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式通常被用來檢索 替換那些符合某個模式 規...
Python的re模組常用方法小練
findall pattern,string,flags 0 作為re模組的三 搜尋函式之 findall 和match search 的不同之處在 於,前兩者都是單值匹配,找到 個就忽略後 直接返回不再查詢了。findall是全 查詢,它的返回值是 個匹配到的字串的列表。這個列表沒有 group ...