我需要获取所有与正则表达式匹配的子字符串,我知道我可能可以为此构建一个自动机,但我正在寻找一个更简单的解决方案。
问题在于,Matcher.find()并不能返回所有结果。
String str = "abaca";
Matcher matcher = Pattern.compile("a.a").matcher(str);
while (matcher.find()) {
System.out.println(str.substring(matcher.start(),matcher.end()));
}
结果是aba
而不是我想要的aba,aca
...
有什么想法吗?
编辑: 另一个例子:对于字符串=abaa,正则表达式=a.*a,我希望得到aba、abaa、aa。
附言:如果无法使用正则表达式实现,这也是一种答案,我只想知道我是否正在为语言已经提供给我的东西重复造轮子...