正则不够用时,PEG成了我的救星

原创
alex 9小时前 阅读数 6 #头条
当我在Lisp里用正则表达式解析Org文档时,发现有些嵌套结构根本没法优雅地表达。正则的贪婪匹配和非捕获组让我堆了一堆lookahead,代码读起来像灾难现场。我转而尝试Parsing Expression Grammar——一种用递归下降思路描述语法的DSL。PEG的优势很明确:语法即代码,不需要生成器,调试路径清晰。我用它重新构建了Org解析器,最后导出HTML时,Markdown那种扁平的转换管线根本比不了。这不是"PEG比正则好"这种简单结论,而是说:当你的语法有层级、有歧义消解需求时,PEG才是正确选择。正则适合token切分,PEG适合结构解析。工具选错了,后面全是债。

原文:Parsing Expression Grammar vs. Regexes: Building Org Parser in Lisp, Export HTML · 来源:Hacker News

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除