当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。