System.out.println(
    Arrays.deepToString(
        "abc<def>ghi".split("(?:<)|(?:>)")
    )
);
Это печатает [abc, def, ghi], как будто я разделился на "<|>". Я хочу, чтобы он печатал [abc, <def>, ghi]. Есть ли способ работать с некоторой магией регулярных выражений, чтобы выполнить то, что я хочу здесь?
Возможно, более простой пример:
System.out.println(
    Arrays.deepToString(
        "Hello! Oh my!! Good bye!!".split("(?:!+)")
    )
);
Отпечатает [Hello, Oh my, Good bye]. Я хочу, чтобы он печатал [Hello!, Oh my!!, Good bye!!].
`.
