Нужно получить 3 группы строк из нескольких строк с помощью регулярных выражений. Первая и последняя группы - это известное количество строк.Сумма может отличаться от списка к списку, но всегда известна.Группа в середине - это любое количество строк, оставшихся между ними.Текст всегда будет иметь по крайней мере количество строк верхней + нижней группы, поэтому нет необходимости проверять, достаточно ли строк
Я дошел до того, что показано в коде ниже, примененного кследующий пример текста:
This could
be "words"
or any text
or pattern
or any amount of lines
need 3 groups:
1 -> lines 1 to 2
2 -> lines leftover
3 -> last 3 lines
Чтобы добиться этого, я получил это далеко:
^((.*\n){1,2})(.*)((.*\n){0,2}.*\n?\z)
Но это не дает желаемых результатов
Ожидаемые результаты:
Группа 1 - это строки 1 и 2 Группа 3 - последние 3 строки. Группа 2 - строки, оставшиеся между
Фактические результаты можно увидеть здесь
![](https://i.stack.imgur.com/PTs4C.jpg)