Можете ли вы использовать регулярное выражение соответствия нулевой ширины в String split?

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!!], `.

Ответы на вопрос(3)

Ваш ответ на вопрос