вычислить абсолютное смещение из относительного смещения подстроки и информации о сопоставителе

аюсь получитьВСЕ подстроки во входной строке, которые соответствуют заданному шаблону.

Например,

Заданная строка: aaxxbbaxb
Шаблон: a [a-z] {0,3} b
(На самом деле я хочу выразить следующее: все шаблоны, которые начинаются с a и заканчиваются на b, но могут содержать до 2 алфавитов между ними)

Точные результаты, которые я хочу (с их индексами):

aaxxb: индекс 0 ~ 4
axxb: индекс 1 ~ 4
axxbb: индекс 1 ~ 5
Axb: индекс 6 ~ 8

Но когда я запускаю его через классы Pattern и Matcher, используяPattern.compile() а такжеMatcher.find(), это только дает мне:

aaxxb: индекс 0 ~ 4
Axb: индекс 6 ~ 8

Это кусок кода, который я использовал.

Pattern pattern = Pattern.compile("a[a-z]{0,3}b", Pattern.CASE_INSENSITIVE);
Matcher match = pattern.matcher("aaxxbbaxb");
while (match.find()) {
    System.out.println(match.group());
}

Как я могу получитькаждый кусок строки, который соответствует шаблону?

Конечно, он не должен использовать классы Pattern и Matcher, если он эффективен :)

Ответы на вопрос(3)

Ваш ответ на вопрос