當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python re.Match.group用法及代碼示例


用法:

Match.group([group1, ...])

返回匹配的一個或多個子組。如果隻有一個參數,則結果為單個字符串;如果有多個參數,則結果是一個元組,每個參數一個項目。如果沒有參數,group1 默認為零(返回整個匹配項)。如果 groupN 參數為零,則相應的返回值是整個匹配字符串;如果在包含範圍 [1..99] 內,則為匹配相應括號組的字符串。如果組數為負數或大於模式中定義的組數,則會引發 IndexError 異常。如果組包含在不匹配的模式部分中,則相應的結果為 None 。如果組包含在多次匹配的模式的一部分中,則返回最後一個匹配項。

>>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>> m.group(0)       # The entire match
'Isaac Newton'
>>> m.group(1)       # The first parenthesized subgroup.
'Isaac'
>>> m.group(2)       # The second parenthesized subgroup.
'Newton'
>>> m.group(1, 2)    # Multiple arguments give us a tuple.
('Isaac', 'Newton')

如果正則表達式使用(?P<name>...) 語法,則groupN 參數也可以是通過組名標識組的字符串。如果字符串參數未用作模式中的組名,則會引發 IndexError 異常。

一個中等複雜的例子:

>>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcolm Reynolds")
>>> m.group('first_name')
'Malcolm'
>>> m.group('last_name')
'Reynolds'

命名組也可以通過它們的索引來引用:

>>> m.group(1)
'Malcolm'
>>> m.group(2)
'Reynolds'

如果一個組匹配多次,則隻能訪問最後一個匹配:

>>> m = re.match(r"(..)+", "a1b2c3")  # Matches 3 times.
>>> m.group(1)                        # Returns only the last match.
'c3'

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 re.Match.group。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。