python中re的group方法詳解(來自官方文檔的權威解釋)

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'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章