Siehe aktualisierte Eingabe- und Ausgabedaten bei Edit-1.Wie kann ich markierten Text für die weitere Verarbeitung analysieren?
Was ich versuche
+ 1 + 1.1 + 1.1.1 - 1.1.1.1 - 1.1.1.2 + 1.2 - 1.2.1 - 1.2.2 - 1.3 + 2 - 3
in eine Python-Datenstruktur dreht zu erreichen wie
[{'1': [{'1.1': {'1.1.1': ['1.1.1.1', '1.1.1.2']}, '1.2': ['1.2.1', '1.2.2']}, '1.3'], '2': {}}, ['3',]]
ich an vielen verschiedenen Wiki Markup-Sprachen haben gesucht, Abschlags, umstrukturiert Text, etc, aber sie sind alle extrem kompliziert für mich zu verstehen, wie es funktioniert, da sie eine große Menge an Tags und Syntax abdecken müssen (ich würde nur die "Liste" Teile der meisten von diesen benötigen, aber natürlich zu Python anstelle von HTML konvertiert.)
Ich habe mir auch Tokenizer, Lexer und Parser angeschaut, aber wieder sind sie viel komplizierter als ich brauche und die ich verstehen kann.
Ich habe keine Ahnung, wo ich anfangen soll und würde jede mögliche Hilfe zu diesem Thema schätzen. Dank
Bearbeiten-1: Ja, die Zeichen am Anfang der Zeile Angelegenheiten, von der geforderten Leistung aus der Zeit vor und jetzt ist es zu sehen sind, dass die *
einen Wurzelknoten mit Kindern bezeichnet, die + hat Kinder und die - hat keine Kinder (root oder sonst) und ist nur zusätzliche Informationen zu diesem Knoten. Die *
ist nicht wichtig und kann mit + (I root bekommen können andere Wege Status.) Ausgetauscht werden
Deshalb ist die neue Anforderung nur *
verwendet würde, um einen Knoten mit oder ohne Kinder zu bezeichnen und - kann keine Kinder haben. Ich habe es auch geändert, also ist der Schlüssel nicht der Text nach dem *
, denn das wird ohne Zweifel später zu einem tatsächlichen Titel wechseln.
Zum Beispiel
* 1 * 1.1 * 1.2 - Note for 1.2 * 2 * 3 - Note for root
würde
[{'title': '1', 'children': [{'title': '1.1', 'children': []}, {'title': '1.2', 'children': []}]}, {'title': '2', 'children': [], 'notes': ['Note for 1.2', ]}, {'title': '3', 'children': []}, 'Note for root']
Oder wenn Sie eine andere Idee haben die Umrisse in Python darzustellen, die sie dann nach vorne bringen.
Geschehen und getan. Ich habe beide diese Dinge bearbeitet. – Rigsby