返回一个或多个匹配的字串。如果只有一个参数,结果只有单个字符串;如果有多个参数,结果是一个元组,元组里每一项对应一个参数。没有参数,group1默认是0(整个匹配串被返回)。如果groupN参数是0,对应的返回值是整个匹配串;如果它属于[1,99],返回对应的一项括号分隔的群。如果参数是负数或大于模式串中定义的群数,IndexError异常会被抛出。如果模式串没有任何匹配,group返回None;如果模式串多次匹配,group将返回最后一次匹配。\
>>> 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')
In [2]: m = re.match(r"(..)+", "a1b2c3") # 三次匹配 In [3]: m.group(0) # 返回整个匹配串 Out[3]: 'a1b2c3' In [4]: m.group(1) # 只返回最后一个匹配 Out[4]: 'c3' In [5]: m.group(2) --------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-5-9b74dc8a1297> in <module>() ----> 1 m.group(2) IndexError: no such group
它返回一个包含所有匹配子群的元组。
>>> m = re.match(r"(\d+)\.(\d+)", "24.1632") >>> m.groups() ('24', '1632')
它返回一个字典,包含所有经命名的匹配子群,键值是子群名。
>>> m = re.match(r'(?P<user>\w+)@(?P<website>\w+)\.(?P<extension>\w+)','myname@hackerrank.com') >>> m.groupdict() {'website': 'hackerrank', 'user': 'myname', 'extension': 'com'}