Как я могу посчитать все ВОЗМОЖНЫЕ совпадения с помощью регулярного выражения?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу посчитать все ВОЗМОЖНЫЕ совпадения с помощью регулярного выражения?

Сообщение Anonymous »

Я очень близок к решению своей проблемы, но есть некоторые крайние случаи, которые не помогают достичь моей цели. Мне нужны все возможные совпадения для шаблона.
Вот пример
aaaa – это входные данные
([a-z0-9_.-]*)a([a-z0-9_.-]*)a([a-z0-9_.-]*)a([a-z0-9_.-]*)это то, что я ищу
На данный момент я получил
aaa соответствует одному
aaa соответствует двум
но мне нужно
aaa соответствует одному
aaa соответствует двум
aa a соответствует трем
a aa соответствует четырем
Вот мой пример кода
На выходе получается 2, но я пытаюсь получить 4
public static void main(String[] args) {
String pattern = "([a-z0-9_.-]*)";
for (char ch : "aaa".toCharArray()) {
pattern += ch + "([a-z0-9_.-]*)";
}
System.out.println(pattern);
Pattern mySuperPattern = Pattern.compile(pattern);

Matcher matcher = mySuperPattern.matcher("aaaa");

int count = 0;
int i = 0;
while (matcher.find(i)) {
count++;
i = matcher.start() + 1;
}

System.out.println(count);
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... h-an-regex
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»