Python的re模組常用方法

2022-09-13 23:00:38 字數 2350 閱讀 1020

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

print

(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

print

(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 ...