re模块是Python中用于正则表达式处理的标准库,在处理文本时非常常用。该模块中提供了很多的函数,其中re.fullmatch.groupdict()函数用于匹配整个字符串,并返回匹配对象的捕获组字典。
re.fullmatch(pattern, string, flags=0).groupdict(default=None)
返回匹配对象的捕获组字典。字典的键是捕获组的名称,值则是对应的匹配字符串。
import re
str1 = "这是一个测试字符串,1234567"
pattern1 = "这是.*字符串,(?P<number>\d+)"
match1 = re.fullmatch(pattern1, str1)
print(match1.groupdict())
输出结果如下:
{'number': '1234567'}
解释:pattern1是正则表达式,它表示匹配以“这是”开头,“字符串,”结尾,中间是1个或分个数字的字符串。str1是要匹配的字符串,通过re.fullmatch(pattern1, str1)进行匹配,符合正则表达式的只有字符串“这是一个测试字符串,1234567”,它中间的数字部分被捕获到名为“number”的捕获组中。所以,运行结果中,键“number”对应的值是“1234567”。
import re
str2 = "3 + 7 = 10"
pattern2 = "(?P<left>\d+)\s*\+\s*(?P<right>\d+)\s*=\s*(?P<result>\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”。
本文链接:http://task.lmcjl.com/news/15378.html