Python 正則物件的方法

2021-08-11 01:26:50 字數 4261 閱讀 7757

re 模組使python 語言擁有全部的正規表示式功能

complile函式根據乙個模式字串和可選的標誌函式生成乙個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。

1.match 方法

rematch 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成的話,match() 返回none

匹配成果返回乙個匹配的物件。

語法:

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

string:匹配使用的文字,

pos: 文字中正規表示式開始搜尋的索引。及開始搜尋string的下標

endpos: 文字中正規表示式結束搜尋的索引。

如果不指定pos,預設是從開頭開始匹配,如果匹配不到,直接返回none

匹配物件方法描述group(num=0)匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組。groups()返回乙個包含所有小組字串的元組,從 1 到 所含的小組號。

使用group()、groups()匹配物件函式來獲取匹配表示式.

importre

print(re.match('www'

,'www.runoob.com').span())

print(re.match('com'

,'www.runoob.com'))

(0, 3)

none

result = pattern.match(r'aahello world hello ling')

print(result)

result2 = pattern.match(r'hello world hello ling')

print(result2.groups())

<_sre.sre_match object at 0x00000000025450b8>

('hello world ', 'hello ling')

解釋:如果不指定pos的話,預設是從字串開始位置匹配,匹配不到就返回none,以上所有的pattern都是乙個match物件,

2. search 方法

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

這個方法用於查詢字串中可以匹配成功的子串。從string的pos下標處起嘗試匹配pattern,如果pattern結束時仍可匹配,則返回乙個match物件;若無法匹配,則將pos加1後重新嘗試匹配;直到pos=endpos時仍無法匹配則返回none。

importre

pattern = re.compile(r'(hello w.*)(hello l.*)')

result1 = pattern.search(r'aahello world hello ling')

print(result1.groups())

('hello world ', 'hello ling')

match  ()方法預設從開始匹配,若匹配不到直接返回none。

search()方法 從開始位置匹配,若匹配不到,下標加一,直到最後。

3. split 方法

split(string[, maxsplit])

按照能夠匹配的子串將string分割後返回列表。maxsplit用於指定最大分割次數,不指定將全部分割

importre

p = re.compile(r'\d+')

print(p.split('one1two2three3four4'))

['one', 'two', 'three', 'four', '']

解釋:直接把p的正則當成是分隔符,然後把最後的字串用p進行分割,然後返回回去

4.findall 方法

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

搜尋string,以列表形式返回全部能匹配的子串.

importre

p = re.compile(r'\d+')

print(p.findall('one1two2three3four4'))

['1', '2', '3', '4']

結果:findall是把匹配到的字串最後一列表的形式返回回去

5 .finditer 方法

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

搜尋string,返回乙個順序訪問每乙個匹配結果(match物件)的迭代器

importre

p = re.compile(r'\d+')

print(type(p.finditer('one1two2three3four4')))

forminp.finditer('one1two2three3four4'):

print(type(m))

print(m.group())

4
解釋:

p.finditer('one1two2three3four4')是乙個迭代器,而返回的每個m都是match物件

6. match匹配物件

match物件是一次匹配的結果,包含了很多關於此次匹配的資訊,可以使用match提供的可讀屬性或方法來獲取這些資訊。上面的過程中多次使用了match物件,呼叫了他的group()和groups()等方法。

importre

prog = re.compile(r'(?pabc)(.*)(?p=tagname)')

result1 = prog.match('abclfjlad234sjldabc')

print(result1)

print(result1.groups())

printresult1.group('tagname')

print(result1.group(2))

print(result1.groupdict())

<_sre.sre_match object at 0x0000000002585140>

('abc', 'lfjlad234sjld')

abclfjlad234sjld

解釋:1,我們可以看到result1已經由字串轉換成了乙個正則物件。

2,resule.groups()可以檢視出來所有匹配到的資料,每個()是乙個元素,最終返回乙個tuple

3,group()既可以通過下標(從1開始)的方式訪問,也可以通過分組名進行訪問。

4,groupdict只能顯示有分組名的資料

group([group1, …]):

獲得乙個或多個分組截獲的字串;指定多個引數時將以元組形式返回。group1可以使用編號也可以使用別名;編號0代表整個匹配的子串;不填寫引數時,返回group(0);沒有截獲字串的組返回none;截獲了多次的組返回最後一次截獲的子串。

groups([default]):

以元組形式返回全部分組截獲的字串。相當於呼叫group(1,2,…last)。default表示沒有截獲字串的組以這個值替代,預設為none。

groupdict([default]): 

返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內。default含義同上。

python物件方法

1 物件的方法 這個物件型別在標準庫裡面就有的方法 2 物件的方法呼叫 物件.方法 3 字串 str 1 count 計算字串中包含的多少個指定的子字串 str1 abcaaa str1.count a 結果 4 2 endswith 檢查字串是否以指定的字串結尾 返回值 bool 3 starts...

python 物件,屬性的方法

物件的建立和銷毀 new cls args,kwargs 建立新例項時呼叫的類方法 這個在 init 的前面呼叫 init self args,kwargs 初始化新實列時呼叫 del self 銷毀物件時呼叫 如下方法用於建立物件的各種字串表示 format self,format spec 建立...

python的id方法 python物件ID

如果您只想建立乙個本地唯一的值,那麼可以使用乙個非常簡單的自動遞增方法。data current id 1 for record in data record id current id current id 1 print record 要新增新值,如果不這樣初始化,可以使用 max d.get ...