Regex разделяется на перекрывающиеся строки
Я изучаю возможности регулярных выражений, поэтому мне просто интересно, возможно ли что-то подобное:
public class StringSplit {
public static void main(String args[]) {
System.out.println(
java.util.Arrays.deepToString(
"12345".split(INSERT_REGEX_HERE)
)
); // prints "[12, 23, 34, 45]"
}
}
Если возможно, то просто предоставьте регулярное выражение (и предварительно объясните, как это работает).
Если это возможно только в некоторых разновидностях регулярных выражений, отличных от Java, не стесняйтесь предоставлять их также.
Если это невозможно, объясните, пожалуйста, почему.
БОНУСНЫЙ ВОПРОС
Тот же вопрос, но сfind()
цикл вместоsplit
:
Matcher m = Pattern.compile(BONUS_REGEX).matcher("12345");
while (m.find()) {
System.out.println(m.group());
} // prints "12", "23", "34", "45"
Обратите внимание, что у меня не так много конкретных задач, которые нужно выполнить тем или иным способом, а скорее я хочу понимать регулярные выражения. Мне не нужен код, который делает то, что я хочу; Мне нужны регулярные выражения, если они существуют, которые я могу использовать в приведенном выше коде для выполнения задачи (или регулярные выражения в других вариантах, которые работают с «прямым переводом» кода на другой язык).
И если они не существуют, я хотел бы получить хорошее и четкое объяснение, почему.