python正規表示式中group

2021-08-06 06:12:49 字數 2127 閱讀 5680

用於匹配括號內的任何正規表示式,並且指明組的開始和結束位置;可以在執行匹配之後檢索組中的內容,並且可以在可以在字串中使用\number來進行進一步的匹配,如下所述。當需要匹配字元』(『或者』)』時,可以使用(和) ,或者[(]和[)]來實現。

以上便是python3.6官方文件對於(…)表示式的解說,該括號表示式用於定義乙個group,乙個正規表示式中可以有多個括號表示式,這就意味著匹配結果中可能有多個group,我們可以用group函式來定位到特定的group結果。

返回匹配結果中乙個或多個group.如果該group函式僅僅有乙個引數,那麼結果就是單個字串;如果有多個引數,結果是每乙個引數對應的group項的元組.如果沒有引數,那麼引數group1預設為0(返回的結果就是整個匹配結果).如果引數值是0,那麼返回整個匹配結果的字串;如果它是[1..99]之間的數字,則返回的是與對應括號組匹配的字串(第一節中已經解釋了,正規表示式中的乙個括號對應著乙個group).如果組號為負或大於模式中定義的組數,則會引發indexerror異常。如果某個group包含在匹配模式中但沒有找到相應的匹配,那麼對應的結果就是none.如果乙個group是匹配模式中的一部分,並且匹配到了多次,那麼最後一次匹配結果將返回.

import re

#定義了兩個group,因為包含兩個括號

m = re.match("(\w+) (\w+)", "isaac newton, physicist")

#group(0)就是匹配的整個結果

print(m.group(0)) #輸出結果為isaac newton

#group(1)是第乙個group的值

print(m.group(1)) #輸出結果為isaac

#group(2)是第二個group的值

print(m.group(2)) #輸出結果為newton

#groups返回所有的group,以元組的形式

print(m.groups()) #輸出結果為('isaac','newton')

返回字串中模式的所有非重疊匹配,結果以乙個字串list返回.字串匹配過程是從左到右開始掃瞄,並且匹配結果按順序返回,如果該模式組存在乙個或多個匹配,則返回匹配該組的乙個列表;如果模式中有多個group,則返回的是乙個元組的列表,元組中的元素依次對應各組的匹配結果.空的匹配包含在結果中除非它們開始了乙個新的匹配過程。

可以看出,findall實質上也是乙個group的匹配過程.其結果就是groups匹配結果的列表.

import re

if __name__ == '__main__':

#用於測試的字串

str = "

" regex = re.compile("

") #定義了兩個group,兩個括號

res = regex.search(str) #search用於找到第乙個滿足匹配的子串,並返回

print("group1:%s"

%res.group(1)) #輸出結果為liuwei

print("group2:%s"

%res.group(2)) #輸出結果為href='www.baidu.com'

res1 = regex.findall(str) #findall輸出所有滿足的匹配

print("res1:%s"

%res1)

print(res1[0]) #輸出結果為('liuwei', 'www.baidu.com')

print(res1[1]) #輸出結果為('zhangbin, 'www.love.com')

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