Используйте прогноз для Input
и используйте find
в цикле, вместо matches
:
Pattern pattern = Pattern.compile("Input(.*?)(?=Input|$)");
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
Смотрите, как он работает в режиме онлайн: ideone
Но лучше использовать разделение здесь:
String[] result = s.split("Input");
// You need to ignore the first element in result, because it is empty.
Посмотрите, как работает онлайн: ideone