1 回答

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
group和groups是兩個不同的函數(shù)。一般,m.group(N) 返回第N組括號匹配的字符。而m.group() == m.group(0) == 所有匹配的字符,與括號無關,這個是API規(guī)定的。m.groups() 返回所有括號匹配的字符,以tuple格式。m.groups() == (m.group(0), m.group(1), ...)
正則表達式中,group()用來提取分組截獲的字符串,()用來分組。
組是通過 "(" 和 ")" 元字符來標識的。 "(" 和 ")" 有很多在數(shù)學表達式中相同的意思;它們一起把在它們里面的表達式組成一組。舉個例子,你可以用重復限制符,象 *, +, ?, 和 {m,n},來重復組里的內容,比如說(ab)* 將匹配零或更多個重復的 "ab"。
如果不引入括號,整個個表達式作為一個組,是group(0)
對于題目中的例子:m = re.match("([abc])+", "abc")+號在括號外面。括號最多匹配到一個字符,要么是a, 要么是c,這個python引擎匹配的是末尾的c。而m.group() == m.group(0) 這個返回的是整個匹配的字符串"abc".
添加回答
舉報
0/150
提交
取消