Consulte los datos actualizados de entrada y salida en Edit-1.¿Cómo puedo analizar el texto marcado para su posterior procesamiento?
Lo que estoy tratando de lograr está convirtiendo
+ 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
en una estructura de datos de Python como
[{'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',]]
He mirado en muchos idiomas diferentes marcas Wiki, rebaja, texto reestructurado, etc, pero todos son extremadamente complicados para mí para entender cómo funciona, ya que deben cubrir una gran cantidad de etiquetas y sintaxis (solo necesitaría las partes de "lista" de la mayoría de estos, pero convertidas a python en lugar de html, por supuesto).
También he echado un vistazo a tokenizers, lexers y analizadores, pero una vez más son mucho más complicados de lo que necesito y que puedo entender.
No tengo idea de por dónde empezar y agradecería cualquier ayuda posible sobre este tema. Gracias
Editar-1: Si el personaje al comienzo de las cuestiones de línea, desde la salida necesaria de antes y ahora se podía ver que el *
denota un nodo raíz con los niños, la + tiene hijos y el - no tiene hijos (raíz o de otro tipo) y es solo información adicional perteneciente a ese nodo. El *
no es importante y se pueden intercambiar con + (puedo obtener el estado de la raíz de otras maneras.)
Por lo tanto el nuevo requisito estaría utilizando solamente *
para denotar un nodo con o sin niños y - no puede tener hijos. También lo he cambiado así que la clave no es el texto después de *
ya que sin duda cambiará más tarde a un título real.
Por ejemplo
* 1 * 1.1 * 1.2 - Note for 1.2 * 2 * 3 - Note for root
daría
[{'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']
O si usted tiene otra idea para representar el contorno de pitón luego llevarlo hacia adelante.
Hecho y hecho. He editado ambas cosas. – Rigsby