溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python——正則表達(dá)式 re模塊

發(fā)布時(shí)間:2020-07-08 11:55:36 來源:網(wǎng)絡(luò) 閱讀:441 作者:AiSmile 欄目:編程語言

Python的正則表達(dá)式

Python中使用re模塊提供了正則表達(dá)式處理的能力

常量

Python——正則表達(dá)式 re模塊

使用 | 位或 運(yùn)算開啟多種選項(xiàng)

方法

import re

編譯

re.compile(pattern, flags=0)

設(shè)定flags、編譯模式,返回正則表達(dá)式對象 regex。

pettern就是正則表達(dá)式字符串,flags是選項(xiàng),正則表達(dá)式需要被編譯,為了提高效率,這些寫編譯后的結(jié)果被保存,下次使用同的pattern的時(shí)候,就不需要再次版編譯

re的其它方法為了提高效率都調(diào)用了編譯方法,就是為了提速

單次匹配

re.match(pattern,string,flags=0)

regex.match(string [,pos [,endpos]])

返回match對象

match匹配從字符串的開頭匹配,regex對象match方法可以重設(shè)定個(gè)開始位置和結(jié)束位置。

re.search(pattern,string,flags=0)

regex.search(string [,pos [,endpos]])

返回match對象

從頭搜索直到第一個(gè)匹配,regex對象serch方法可以沖設(shè)定開始位置和結(jié)束位置。

re.fullmatch(pattern,string,flags=0)

regex.fullmatch(string [,pos [,endpos]])

返回match對象

整個(gè)字符串和正則表達(dá)式匹配

全文搜索

re.findall(pattren,string,flags=0)

regex.findall(string [, pos [,endpos]])

對整個(gè)字符串,從左至右,返回左右匹配項(xiàng)的列表

如果pattern使用組,列表元素為組的匹配內(nèi)容,不使用組,則元素為匹配內(nèi)容

re.findeiter(pattern,striing,flags=0)

regex,finditer(string [,pos [,endpos]])

對整個(gè)字符串,從左至右,返回所有匹配項(xiàng)返回迭代器

注意:迭代出來的元素為match對象

匹配替換

re.sub(pattern,replacement,string,count=0,flags=0)

regex.sub(replacement,string,count=0)

返回new_string

使用pattern 對字符串string 進(jìn)行匹配,對匹配項(xiàng)使用replacement替換

repalcement可以是string、bytes、function

re.subn(pattern,replacement,string,count=0,flags=0)

regex.subn(replacement,string,count=0)

同re.sub 返回一個(gè)元組(new_string , number_of_sub_made)

分割字符串

字符串的分割函數(shù)split , 太難用,不能指定多個(gè)字符進(jìn)行分割

re.split(pattern,string,maxsplit=0,flags=0)

regex.split(string,maxsplit=0)

分組

使用小括號(hào)的pattern捕獲的數(shù)據(jù)被放到了組group中。

match、search 函數(shù)可以返回match對象;findall 返回字符串列表;finditer返回一個(gè)個(gè)match對象

如果pattern中使用了分組,如果有匹配的結(jié)果,會(huì)在match對象中:

1.使用,group(n)方式返回對應(yīng)分組,1~N 是對應(yīng)的分組,0返回整個(gè)匹配的字符串

2.如果使用了命名分組沒,可以使用group(“name”)的方式獲取分組

3.也可以使用groups()返回所有分組

4.使用groupdict()返回所有命名的分組

matchaer.group() 返回 字符串

matchaer.group(‘name’) 返回 字符串

matcher.groups() 返回 分組組成的tuple

matcher.groupdict()


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI