Я пытаюсь получить все подстроки в входной строке, соответствующую данному рисунку.
Например,
Данная строка: 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());
}
Как я могу извлечь каждую единую часть строки, которая соответствует шаблону ?
Конечно, ему не нужно использовать классы шаблонов и сопоставлений, если это эффективно :)