我想要java正则表达式所有匹配的索引

我想要java正则表达式所有匹配的索引,java,regex,Java,Regex,学习kmp算法的人。 我想知道kmp算法是否太难用正则表达式代替。 我不喜欢这个结果。 我想要的结果是0和1。 我想知道正则表达式的时间复杂度是否是O(n+m) publicstaticvoidmain(字符串[]args)引发IOException{ BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in)); 字符串t=“aaa”; 模式p=模式编译(“aa”); 匹配器m=p.Matcher(t); ArrayLis

学习kmp算法的人。 我想知道kmp算法是否太难用正则表达式代替。 我不喜欢这个结果。 我想要的结果是0和1。 我想知道正则表达式的时间复杂度是否是O(n+m)

publicstaticvoidmain(字符串[]args)引发IOException{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
字符串t=“aaa”;
模式p=模式编译(“aa”);
匹配器m=p.Matcher(t);
ArrayList ans=新的ArrayList();
而(m.find())ans.add(m.start());
for(int i:ans)
系统输出打印(i+“”);
}
我想要结果[0 1]
这个结果[1]

既然我知道了你的问题, 这就是如何获得索引的方法

public static void main(){
    String input = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    Pattern pattern = Pattern.compile("(?=(aaa))");
    Matcher matcher = pattern.matcher(input);
    List<Integer> all = new ArrayList<>();
    while (matcher.find()) {
        all.add(matcher.start());
    }
    System.out.println(all);
}

要获取数组,只需返回
all

您所学习的、您不喜欢的、您想知道的和您想要的。你能告诉我你的问题是什么吗?我想用正则表达式得到我想要的结果。我希望结果是[0 1]很酷,我现在已经更新了我的答案。看看它是否适用于你的问题。我希望结果是[0,1,2,3,4,5,6,…25,26,27]答案是错误的。你的例子的答案应该是[0,1,2,3,4,5,6,…25,26,27]。哦,对不起@이재국. 我已经更新了答案。请看一遍。哇,谢谢!!!你真棒!
public static void main(){
    String input = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    Pattern pattern = Pattern.compile("(?=(aaa))");
    Matcher matcher = pattern.matcher(input);
    List<Integer> all = new ArrayList<>();
    while (matcher.find()) {
        all.add(matcher.start());
    }
    System.out.println(all);
}
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]