У меня есть большой файл исходного кода, который структурирован с использованием пробелов. Я заинтересован только в одной конкретной части структурированного текстового файла, который выглядит следующим образом:Эффективно извлекать блоки текста из структурированного файла с пространственным углублением
SP : STRUCT
Spare : STRUCT //Spare
Val : INT := 100;
UpLim : INT := 100;
LoLim : INT ;
Def : INT := 100;
Prot : INT := 2;
END_STRUCT ;
END_STRUCT ;
Как вы можете видеть, есть «СП» структура, определенная (они будут разбросаны по всему исходному коду, но имеют одно и то же имя), который содержит одну или несколько других структур того же типа. В этом примере есть только один, называемый «Spare». Каждая структура всегда будет содержать те же 5 элементов. Если значение не определено, оно равно нулю.
Каков наиболее элегантный способ извлечения имени структуры и ее значений элементов? После их извлечения они будут храниться в словаре для быстрого и легкого доступа.
Я пробовал использовать регулярное выражение, но я не уверен, что это очень эффективное решение этой конкретной проблемы. Какие подходы обычно принимаются для решения чего-то подобного?