【发布时间】:2018-08-16 10:51:27
【问题描述】:
如何获取模式匹配的字符串的所有索引(包括重叠)。 我有这个 poc 代码。
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, 3, 6, 9, 12, 15, 18, 21, 24, 27]
它不考虑重叠模式。 所有匹配的索引应该是:
[0, 1, 2, 3, 4, .....27]
我知道 KMP 很容易做到这一点,但是
我们可以使用 Pattern 和 Matcher 做到这一点吗?
【问题讨论】:
标签: java pattern-matching