Я собираюсь анализировать текстовые файлы с известной структурой. Прежде чем перейти к решению типа машины Руба-Голдберга, я хотел проверить, существует ли стандартный подход к таким проблемам.
Файловая структура
whatever text, empty lines more text
long text empty lines
whatever
← one empty line
line 1 of final block of text
line 2 of final block of text
line 3 of final block of text
← more lines, the number is not defined
← new line and end of file
Итак, это свободный текст до пустой строки, затем блок из отдельных строк текста без пустых строк и конец файла на новой строке.
Я хотел бы разделить этот файл на две основные части: произвольный текст par и блочная часть. Затем оба будут проанализированы независимо.
Моя первая надежда состоит в том, что будет какой-то модуль «сопоставления шаблонов файлов», в котором я бы описал файл так же, как описано выше, и извлек бы две мои части. Я только что нашел шаблон (а это наоборот: опишите содержимое файла, чтобы его создать).
Следующее решение, которое приходит на ум, - регулярное выражение. Часть, над которой я борюсь, - это описать «блок текста с возвратом только одной строки». Как это можно описать?
И вообще - есть ли более простое решение этой проблемы? (просто указать на это было бы здорово, вероятно, я просто никогда не встречал Этот подход).
Мне кажется, что файл следует анализировать снизу вверх - вероятно, это решение, которое я буду разрабатывать, если не будет более очевидного.