Вот однострочный файл, который делает все:
List<String> strings = Arrays.asList( input.replaceAll("^.*?pattern1", "")
.split("pattern2.*?(pattern1|$)"));
Пробой:
.*?
) между pattern2 и pattern1 (или конец ввода) Arrays.asList()
для сгенерируйте List<String>
Вот несколько тестовых кодов:
public static void main( String[] args ) {
String input = "abcabc pattern1foopattern2 abcdefg pattern1barpattern2 morestuff";
List<String> strings = Arrays.asList( input.replaceAll("^.*?pattern1", "").split("pattern2.*?(pattern1|$)"));
System.out.println( strings);
}
Выход:
[foo, bar]