在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',]]
我已經看了很多不同的維基標記語言,降價,重組後的文本,等等,但它們對於我理解它是如何工作的都非常複雜,因爲它們必須覆蓋大量的標記和語法(我只需要大部分這些「列表」部分,但當然轉換爲python而不是html)。
我也看過了標記器,詞法分析器和解析器,但它們又比我需要的複雜得多,而且我能理解。
我不知道從哪裏開始,並希望在這個問題上可能的幫助。由於
編輯-1:是的字符在該行事務的開始,從之前需要輸出的,現在可以看出的是,*
表示有孩子的根節點,該+有孩子和-沒有孩子(根或其他),只是額外的信息屬於該節點。該*
並不重要,可與+(我能獲得root身份的其他方式。)
因此,新規定將只使用*
表示一個節點有或無子女和互換 -不能給孩子。我也改變了它,所以關鍵不是*
之後的文字,因爲這將毫無疑問地改變成實際的標題。
例如
* 1 * 1.1 * 1.2 - Note for 1.2 * 2 * 3 - Note for root
會給
[{'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']
或者,如果你有另一個想法代表在python的輪廓,然後把它向前。
完成和完成的。我編輯了這兩個東西。 – Rigsby 2009-07-07 07:10:18