请参阅Edit-1中的更新输入和输出数据.
我想要完成的是转向
+ 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
进入python等数据结构
[{'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',]]
Run Code Online (Sandbox Code Playgroud)
我看过许多不同的wiki标记语言,markdown,重构文本等等,但是它们对我理解它是如何工作非常复杂,因为它们必须覆盖大量标签和语法(我只需要"列表")大部分的部分但当然转换为python而不是html.)
我还看了一下tokenizer,词法分析器和解析器,但是它们比我需要的要复杂得多,我能理解.
我不知道从哪里开始,并希望对此主题有任何帮助.谢谢
编辑-1:是的,行开头的字符很重要,从之前的必需输出开始,现在可以看出,*表示带有子节点的根节点,+有子节点,-没有子节点(根或其他) )并且只是与该节点有关的额外信息.这*并不重要,可以与+互换(我可以通过其他方式获得root状态.)
因此,新要求仅*用于表示有或没有孩子的节点,并且-不能有孩子.我也改变了它所以关键不是之后的文本,这*无疑会改变后来的实际标题.
例如
* 1 * 1.1 * 1.2 - Note for 1.2 * 2 * 3 - Note for root
会给 …