java рекурсивный (?) Повторяется (?) Deep (?) Соответствие образованию

Я пытаюсь получить все подстроки в входной строке, соответствующую данному рисунку.

Например,

Данная строка: aaxxbbaxb
Узор: A [A-Z] {0,3} B
(Что я на самом деле хочу выразить: все шаблоны, которые начинаются с A и заканчиваются B, но могут иметь до 2 алфавитов между ними)

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

AAXXB : index 0 ~ 4
AXXB: индекс 1 ~ 4
AXXBB: индекс 1 ~ 5
AXB: индекс 6 ~ 8

, но когда я пропускаю его через узор и классы сопоставления, используя 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());
}

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

Конечно, ему не нужно использовать классы шаблонов и сопоставлений, если это эффективно :)

5
задан nhahtdh 11 January 2014 в 21:09
поделиться