小编Rig*_*sby的帖子

如何解析标记的文本以进行进一步处理?

请参阅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

会给 …

python markup markdown parsing lexer

5
推荐指数
1
解决办法
563
查看次数

标签 统计

lexer ×1

markdown ×1

markup ×1

parsing ×1

python ×1