, поэтому я ищу, чтобы разобрать строку и сгладить ее, которая содержит переменную глубину чисел.Итеративный анализ без XML?
Вот пример строки:
'(7&(10&(22|25))|(22&25)|(25&(10|22)))|(9&(10&(22|25))|(22&25)|(25&(10|22)))|(33&22&25)'
Что это означает, что у нас есть 3 разные возможности в первом уровне, как представлено в этом списке:
['7&(10&(22|25))|(22&25)|(25&(10|22))', '9&(10&(22|25))|(22&25)|(25&(10|22))', '33&22&25']
Последние вариант в этом списке может быть только одним (поскольку он не имеет внутренних уровней).
Однако первый довольно изменчив :, поэтому я остановлюсь на этом: «7 &» означает, что каждый элемент этого уровня имеет 7.
Итак, мы извлечь уровни ребенка из что, и мы получаем:
['10&(22|25)', '22&25', '25&(10|22)']
так вот, индекс 1 тупиковый, так что наш конечный результат для этого дерева «7 25». Для индекса 0, то есть родитель 7 и ребенка 22 | 25, что означает отдельные деревья, поэтому наш финал 7 22 и 7 25, и для последнего, мы имеем 7 10 и 7 22.
есть ли способ, что я мог сделать это итеративно? У меня уже есть синтаксические анализаторы, чтобы извлечь один уровень и извлечь, если есть числовой символ плюс амперсанд и извлечь дочерние уровни.
Большое вам спасибо.