Returns one or more subgroups of the match. If there is a single argument, the result is a single string; if there are multiple arguments, the result is a tuple with one item per argument. Without arguments, group1 defaults to zero (the whole match is returned). If a groupN argument is zero, the corresponding return value is the entire matching string; if it is a positive integer, it is the string matching the corresponding parenthesized group. If a group number is negative or larger than the number of groups defined in the pattern, an IndexError exception is raised. If a group is contained in a part of the pattern that did not match, the corresponding result is None. If a group is contained in a part of the pattern that matched multiple times, the last match is returned.
>>> 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')
If the regular expression uses the (?P<name>...) syntax, the groupN arguments may also be strings identifying groups by their group name. If a string argument is not used as a group name in the pattern, an IndexError exception is raised.
A moderately complicated example:
>>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcolm Reynolds")>>> m.group('first_name')'Malcolm'>>> m.group('last_name')'Reynolds'
Named groups can also be referred to by their index:
>>> m.group(1)'Malcolm'>>> m.group(2)'Reynolds'
If a group matches multiple times, only the last match is accessible:
>>> m = re.match(r"(..)+", "a1b2c3") # Matches 3 times.>>> m.group(1) # Returns only the last match.'c3'