group方法返回一個或者多個匹配的子組。如果只有一個參數,結果就是一個字符串,如果有多個參數,結果就是一個元組(每個參數對應一個項),如果沒有參數,整個匹配都被返回。 如果一個參數值爲 0,即是group(0),相應的返回值就是整個匹配字符串;如果它是一個範圍 [1..99],結果就是相應的括號組字符串。如果一個組號是負數,或者大於樣式中定義的組數,一個
IndexError
索引錯誤就raise
。如果一個組包含在樣式的一部分,並被匹配多次,就返回最後一個匹配。
上面有個例子,你也可以實踐一下,group(0)時,返回整個匹配字符串
group(1)時,返回(\d+)匹配字符串
group(2)時,返回(\w+)匹配字符串
還有一種更復雜的寫法
使用了 (?P<name>…)
語法, group(n)中,參數n就也可能是命名組合的名字。如果一個字符串參數在樣式中未定義爲組合名,一個 IndexError
就 raise
。
>>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcolm Reynolds") >>> m.group('first_name') 'Malcolm' >>> m.group('last_name') 'Reynolds'