1

想知道是否有一个函数match.groupdict()可以捕获类似于match.captures函数的重复。

当我运行此代码时:

import regex

test = regex.compile("(?P<a>a)*(?P<b>b)*(?P<c>c)*")
test.match("aabbbcc").groupdict()

我得到:

{'a': 'a', 'b': 'b', 'c': 'c'}

我想要的是这样的:

{'a': ['a', 'a'], 'b': ['b', 'b', 'b'], 'c': ['c', 'c']}

有这样做的功能还是我应该自己手动完成?

4

1 回答 1

0

您可以使用

import regex
test=regex.compile("(?P<a>a)*(?P<b>b)*(?P<c>c)*")
print ( test.match("aabbbcc").capturesdict() )
# => {'a': ['a', 'a'], 'b': ['b', 'b', 'b'], 'c': ['c', 'c']}

或者,如果您需要将整个字符串与此模式匹配,请替换.match.fullmatch

test.fullmatch("aabbbcc").capturesdict()

请参阅Python 演示

请参阅PyPi 正则表达式模块文档

capturesdict返回命名组的字典和这些组的所有捕获的列表。

于 2021-12-28T20:14:26.237 回答