捕获重复组的多个子组

时间:2012-11-27 15:02:15

标签: regex

基本上我想捕获多个子组。 我不是Repeating a Capturing Group nor Capturing a Repeated Group

如果有 aaa ,我想获得以下子组:
$ 1:a 2美元:a 3美元:

这可以通过(a)(a)(a)来实现。

我现在正试图将此作为(a){3} 的内容,但遗憾的是,这只会导致 $ 1:

编辑: 我试图用Java做到这一点。我已经有了另一个解决方案,它使用StringBuilder通过重复捕获组来生成预期出现的数量来生成正确的模式。
这个问题更多是出于好奇,因为我正在寻找一种更简单的方法来做到这一点。

Some1.Kill.The.DJ提到的是我在Java中尝试做的事情。

1 个答案:

答案 0 :(得分:0)

实际用例和正则表达式引擎对于真正回答这个问题是必要的,但对于您提供的示例,可以使用与表达式(a)的全局模式匹配来完成。在python中它会像这样完成......

>>> import re
>>> test = "aaa"
>>> re.findall(r'(a)', test)
['a', 'a', 'a']

在Perl中,它将添加/ g修饰符等。全局模式匹配将尝试在给定字符串中尽可能多地匹配表达式。