我正在实现一种方法,该方法采用正则表达式模式,例如r'(\w+/)+end'
和 string 'ab/cd/ef/end'
。请注意,我不能请求方法的调用者更新他们的模式格式。在该方法中,我需要执行一个操作,该操作需要提取第一个捕获组的所有匹配项,即ab/
、cd/
和ef/
。
我如何在 Python 中实现这一点?类似下面的内容为每个捕获组返回一个最后匹配的元组。在这个例子中我们只有一个,所以它返回('ef/',)
.
re.match(r'(\w+/)+end', 'ab/cd/ef/end').groups()
顺便说一句,在 C# 中,每个捕获组都可以匹配多个字符串,例如Regex.Match("ab/cd/ef/end", @"(\w+/)+end").Groups[1].Captures
将返回第一个捕获组的所有三个匹配项(\w+/)+
。