Если у вас есть какое-либо повторение с группой захвата, оно будет захватывать только финальный матч этой группы. Лучшим вариантом здесь было бы упростить регулярное выражение, чтобы оно соответствовало только одному слову, а затем повторно используйте match.find()
, пока не найдете соответствие:
String test = "My/word example/word";
Pattern pattern = Pattern.compile("(\\w+)/word");
Matcher match = pattern.matcher(test);
while (match.find()) {
System.out.println(match.group(1));
}
Нетрудно добавить здесь логику для печати, только если вы нашли два или более совпадений.
Также обратите внимание, что я немного изменил ваше регулярное выражение, передние косые черты не нужно экранировать, и я заменяю .*
на \w+
, что должно быть лучше, потому что вы не будете жадно совпадать до самого последнего /word
.