注册

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

Python re 模块re.fullmatch.groups 函数的作用与使用方法

1. re.fullmatch 函数

re.fullmatch 函数是 Python re 模块中的一个函数,用于匹配整个字符串,如果整个字符串符合正则表达式,则返回一个匹配对象,否则返回 None。

语法格式如下:

re.fullmatch(pattern, string, flags=0)

参数说明:

  • pattern: 正则表达式,用于匹配 string 字符串
  • string: 要匹配的字符串
  • flags: 匹配模式,详见 re 模块文档

下面是一个例子:

import re

pattern = r'\d+'
string = '123'

match_obj = re.fullmatch(pattern, string)
if match_obj:
    print(match_obj.group())
else:
    print('匹配失败')

输出结果为:

123

2. re.fullmatch.groups 函数

re.fullmatch.groups 函数是 re.fullmatch 函数的一个方法,用于返回整个匹配字符串中的所有匹配分组。

语法格式如下:

match_obj.groups(default=None)

参数说明:

  • default: 默认返回值。如果正则表达式中没有分组,则返回空元组,否则返回 None

下面是一个例子(没有分组):

import re

pattern = r'\d+'
string = '123'

match_obj = re.fullmatch(pattern, string)
groups = match_obj.groups()
print(groups)

输出结果为:

()

下面是一个例子(有分组):

import re

pattern = r'(\d+)(\w+)'
string = '123abc'

match_obj = re.fullmatch(pattern, string)
groups = match_obj.groups()
print(groups)

输出结果为:

('123', 'abc')

3. 完整实例

下面是一个完整的实例,用于从字符串中提取出姓名、年龄和性别:

import re

pattern = r'(?P\w+)\s+(?P\d+)\s+(?P[MF])'

string = 'Tom 18 M'

match_obj = re.fullmatch(pattern, string)
if match_obj:
    name, age, gender = match_obj.groups()
    print('姓名:', name)
    print('年龄:', age)
    print('性别:', gender)
else:
    print('匹配失败')

输出结果为:

姓名: Tom
年龄: 18
性别: M

4. 总结

re.fullmatch.groups 函数可以用于获取正则表达式中所有的匹配分组,方便我们从匹配字符串中提取出需要的信息。在实际开发中,如果需要从字符串中提取出复杂的数据,使用正则表达式是非常方便和有效的,也是 Python 开发中必备的技能。