Я пытаюсь получить ALL подстроки во входной строке, которые соответствуют заданному шаблону.
Например,
Заданная строка: 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, если он эффективен:)