详解Python re.fullmatch.groups函数:返回所有匹配的子串

  • Post category:Python

re.fullmatch.groups() 函数

re 模块中的 re.fullmatch.groups() 函数是用来匹配整个字符串,并返回整个匹配结果中的所有分组。其中,分组是由小括号 () 包含的部分。

该函数的语法如下:

re.fullmatch(pattern, string, flags=0).groups(default=None)

其参数说明如下:

  • pattern:匹配的正则表达式。
  • string:要匹配的字符串。
  • flags:匹配标志,如 re.IGNORECASE 等,可选参数。
  • default:匹配不成功时的默认返回值。

该函数返回一个对象,该对象包含了匹配到的所有组的值。如果没有匹配到任何数据,则返回默认值。

下面是一个简单的例子:

import re

s = 'Hello, world!'
match = re.fullmatch(r"(Hello), (\w+)!", s)
if match:
    print(match.groups())

输出:

('Hello', 'world')

在上面的例子中,我们首先定义了一个字符串 s,该字符串可以匹配到一个名为 Hello, world! 的字符串。我们接着定义了一个正则表达式 r"(Hello), (\w+)!",其中,分别包含了两个用小括号括起来的子表达式。

这两个子表达式分别匹配到了 Helloworld,并返回了整个匹配结果。

通过 match.groups() 方法我们可以获取到这些分组的值。在这里,我们可以看到输出的元组中包括了 Helloworld 两个值。

下面再来看一个例子:

import re

s = '123456'
match = re.fullmatch(r'\d+', s)
if match:
    print(match.groups())

输出:

()

在这个例子中,我们定义了一个正则表达式 \d+,该正则表达式的含义是匹配字符串中至少一个数字。由于字符串 s 中部分都是数字,所以该正则表达式可以匹配成功。

但由于我们在正则表达式中并没有使用小括号包裹,所以返回的结果中也没有任何分组。

至此,我们已经完整地讲解了 Python 的 re 模块 re.fullmatch.groups() 函数的作用和使用方法。通过它,我们可以方便地获取到整个匹配结果中的所有分组数据。