【发布时间】:2010-06-06 03:19:36
【问题描述】:
假设我有一个像这样的项目符号列表:
* list item 1
* list item 2 (a parent)
** list item 3 (a child of list item 2)
** list item 4 (a child of list item 2 as well)
*** list item 5 (a child of list item 4 and a grand-child of list item 2)
* list item 6
我想将其解析为嵌套列表或其他一些数据结构,这使得元素之间的父子关系显式(而不是取决于它们的内容和相对位置)。例如,这是一个包含一个项目及其子项列表(等等)的元组列表:
编辑:希望是一个更正确的列表示例,其中列表中的每个元素都是一个元组,其中包含:项目符号的文本以及(如果适用)子列表(以相同的形式)。
罢工>
[('列表项 1',), ('list item 2', [('list item 3',), ('list item 4', [('list item 5',)])] ('列表项 6',)][('list item 1',),
('list item 2', [('list item 3',), ('list item 4', [('list item 5',)])]),
('list item 6',)]
我尝试使用纯 Python 和 Pyparsing 进行一些实验,但我没有取得进展。我有两个主要问题:
- 我需要采用什么策略来完成这项工作?我知道递归是解决方案的一部分,但我很难在这个和斐波那契数列之间建立联系。
- 我确定我不是第一个这样做的人,但我不知道该问题的术语,以便对有关此主题的更多信息进行富有成效的搜索。与此相关的问题是什么,以便我可以了解更多关于解决这类问题的一般信息?
【问题讨论】:
-
我想如果你能在这里发布你的尝试,人们可能会更好地帮助你!
-
您是否正在尝试解析组织模式文件?也许你可以从 orgnode 中获得灵感,看看他是如何完成解析的。 members.optusnet.com.au/~charles57/GTD/orgnode.html
-
@Lazer:很抱歉,但我并没有真正有用的尝试样本。令我沮丧的是,我没有检查版本控制,我的尝试剩下的东西没有运行。 =\ @pygabriel:我不是在尝试解析 org-mode,但感谢您提供的链接。我肯定会很快花一些时间来回顾一下。这可能是鼓舞人心的。如果它很有价值,我想做的是制作和使用超级简单的清单格式。