Связано с: Python анализирует блоки в квадратных скобках
У меня есть файл следующего формата:
#
here
are
some
strings
#
and
some
others
#
with
different
levels
#
of
#
indentation
#
#
#
Таким образом, блок определяется начальным #
и конечным #
. Однако конечный #
n-1-го блока также является начальным #
n-го блока.
Я пытаюсь написать функцию, которая, учитывая этот формат, будет извлекать содержимое каждого блока, и это также может быть рекурсивным.
Начнем с того, что я начал с регулярных выражений, но довольно быстро отказался (думаю, вы догадались, почему), поэтому я попытался использовать pyparsing
, но я не могу просто написать
print(nestedExpr('#','#').parseString(my_string).asList())
Потому что это вызывает исключение ValueError
(ValueError: opening and closing strings cannot be the same
).
Зная, что я не могу изменить формат ввода, есть ли у меня лучший вариант, чем pyparsing
для этого?
Я также пытался использовать этот ответ: https://stackoverflow.com/a/1652856/740316 и заменил {
/ }
с #/#
, но не может разобрать строку.
#
на что-то вроде#-#
, а затем разделите или проанализируйте его на-
. - person l'L'l   schedule 08.04.2015