【发布时间】:2012-03-18 09:46:19
【问题描述】:
我正在编写一个评论系统。它必须有像stackoverflow这样的格式化系统。
用户可以使用一些内联 markdown 语法,例如 bold 或 italic。我认为我可以通过使用正则表达式替换来解决这个需求。
但我还必须做另一件事:通过给 4 个空格缩进,用户可以创建代码块。我认为我不能通过使用正则表达式来做到这一点。或者解析 idents 对我来说太高级了 :) 此外,通过使用正则表达式替换来创建列表对我来说似乎是不可能的。
- 这样做的最佳方法是什么?
- 是否有任何降价库可以减少它的功能? (例如,我会尝试删除表格支持)
- 如果我应该编写自己的解析器,我应该从头开始编写一个有限状态机吗?还是有任何其他库可以使其更容易?
感谢您的宝贵时间和您的回复。
【问题讨论】:
-
解析器生成器有很多选择。你可以看看这个页面,例如:wiki.python.org/moin/LanguageParsing
-
我正在使用 Markdown 模块(您可以通过 easy_install 获得它),并发现通过编写自定义扩展来为其添加更多功能相当容易。
标签: python parsing stack-overflow markdown markup