注册

详解Python re.fullmatch.groupdict函数:返回所有有命名的匹配的字典

Python中re.fullmatch.groupdict()函数的作用与使用方法

re模块简介

re模块是Python中用于正则表达式处理的标准库,在处理文本时非常常用。该模块中提供了很多的函数,其中re.fullmatch.groupdict()函数用于匹配整个字符串,并返回匹配对象的捕获组字典。

语法

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

参数说明

  • pattern:正则表达式
  • string:要匹配的字符串
  • flags:匹配模式
  • default:当某个捕获组没有匹配到时的默认值,它是可选参数

返回值

返回匹配对象的捕获组字典。字典的键是捕获组的名称,值则是对应的匹配字符串。

实例说明

实例1

import re

str1 = "这是一个测试字符串,1234567"
pattern1 = "这是.*字符串,(?P\d+)"
match1 = re.fullmatch(pattern1, str1)
print(match1.groupdict())

输出结果如下:

{'number': '1234567'}

解释:pattern1是正则表达式,它表示匹配以“这是”开头,“字符串,”结尾,中间是1个或分个数字的字符串。str1是要匹配的字符串,通过re.fullmatch(pattern1, str1)进行匹配,符合正则表达式的只有字符串“这是一个测试字符串,1234567”,它中间的数字部分被捕获到名为“number”的捕获组中。所以,运行结果中,键“number”对应的值是“1234567”。

实例2

import re

str2 = "3 + 7 = 10"
pattern2 = "(?P\d+)\s*\+\s*(?P\d+)\s*=\s*(?P\d+)"
match2 = re.fullmatch(pattern2, str2)
print(match2.groupdict())

输出结果如下:

{'left': '3', 'right': '7', 'result': '10'}

解释:pattern2是正则表达式,它表示匹配形如“数字1 + 数字2 = 结果”的字符串。str2是要匹配的字符串,通过re.fullmatch(pattern2, str2)进行匹配,符合正则表达式的只有字符串“3 + 7 = 10”,其左边的数字部分被捕获到“left”捕获组中,“右边的数字部分被捕获到“right”捕获组中,“结果”的数字部分被捕获到“result”捕获组中。因此,运行结果中,键“left”对应的值是“3”,键“right”对应的值是“7”,键“result”对应的值是“10”。