基本上我想捕获多个子组。 我不是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中尝试做的事情。
答案 0 :(得分:0)
实际用例和正则表达式引擎对于真正回答这个问题是必要的,但对于您提供的示例,可以使用与表达式(a)
的全局模式匹配来完成。在python中它会像这样完成......
>>> import re
>>> test = "aaa"
>>> re.findall(r'(a)', test)
['a', 'a', 'a']
在Perl中,它将添加/ g修饰符等。全局模式匹配将尝试在给定字符串中尽可能多地匹配表达式。