第一點,搞清楚它們用在什麼地方?
正規表示式中,group()用來提取分組截獲的字串,()用來分組。
組是通過 "(" 和 ")" 元字元來標識的。 "(" 和 ")" 有很多在數學表示式中相同的意思;它們一起把在它們裡面的表示式組成一組。舉個例子,你可以用重複限制符,象 *, +, ?, 和 ,來重複組裡的內容,比如說(ab)* 將匹配零或更多個重複的 "ab"。
如果不引入括號,整個個表示式作為乙個組,是group(0)(特別要注意這個,屬於易混點)
第二點 談區別
group和groups是兩個不同的函式。第三點 例項說明一般,m.group(n) 返回第n組括號匹配的字元。
而m.group() == m.group(0) == 所有匹配的字元,與括號無關,這個是api規定的。
m.groups() 返回所有括號匹配的字元,以tuple格式(元組格式),不包括m.group(0),即整個表示式。
m.groups() == (m.group(0), m.group(1), ...)
例一:未加括號時,預設分組為整個表示式
>>> import re例二: 分組之後的情形>>> p=re.compile('\d-\d-\d')
>>> m=p.match('2-3-1')
>>> m.groups()
>>> m.group()
'2-3-1'
>>> m.group(0)
'2-3-1'
>>> m.group(1)
traceback (most recent call last):
file "", line 1, in
indexerror: no such group
>>> p=re.compile('(\d)-(\d)-(\d)')注意:m.groups()不包含自身的表示式。>>> m.groups()
>>> m=p.match('2-3-1')
>>> m.groups()
('2', '3', '1')
>>> m.group()
'2-3-1'
>>> m.group(0)
'2-3-1'
>>> m.group(1)
'2'>>> m.group(2)
'3'>>> m.group(3)
'1'>>> m.group(4)
traceback (most recent call last):
file "", line 1, in
indexerror: no such group
>>> m.groups()
('2', '3', '1')
python正規表示式中group
用於匹配括號內的任何正規表示式,並且指明組的開始和結束位置 可以在執行匹配之後檢索組中的內容,並且可以在可以在字串中使用 number來進行進一步的匹配,如下所述。當需要匹配字元 或者 時,可以使用 和 或者 和 來實現。以上便是python3.6官方文件對於 表示式的解說,該括號表示式用於定義乙個...
正規表示式find和group詳解
正規表示式是乙個很好的東西,要使用好得好好研究。最近對find和group方法比較模糊。經研究記錄下筆記。呼叫group 方法前,都前要用find方法。否則報錯。其實看matcher類可以看到其中有乙個int groups 其實這個陣列就是儲存group匹配的資料。首先要知道乙個正規表示式之後有幾組...
python正規表示式中的分組 group
組是通過 和 元字元來標識的。和 有很多在數學表示式中相同的意思 它們一起把在它們裡面的表示式組成一組。舉個例子,你可以用重複限制符,象 和 來重複組裡的內容,比如說 ab 將匹配零或更多個重複的 ab 例子 如果不引入括號,增個表示式作為乙個組,是group 0 import re p re.co...