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 开发中必备的技能。