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'
发布了70 篇原创文章 · 获赞 25 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/a66666_/article/details/103412774