如何为PHP选择合适的解析器生成器?

时间:2013-03-12 10:39:04

标签: php regex xslt yacc lex

一些程序员说他们“厌倦了使用正则表达式来解析真正不应该用正则表达式解析的东西”(参见本popular @nickf comment)。像我这样的其他人更喜欢用PHP编程(和regular expressions)并避免使用另一个框架(如Lex/Yacc)......但不是“更多”,这是第一个问题:< / p>

当我们必须避免创建(复杂的)PHP解析器时,迁移到真正的“parser generator引擎”?

完成第一个问题的第二个问题是“用于解析复杂事物的最佳PHP工具包”?今天,2013年,有一个标准的可互操作的解析器内容,XML(或SimpleXML arrays等)和“标准解析器”,如DOM APIXPathXSLT

作为I sketched,也许没有“最佳解决方案”,而是良好做法配方,有时选择解决方案,然后是另一种解决方案。

总结:1)“我们何时应该保留纯PHP或PHP + RegEx,以使用解析器生成器?”; 2)“用于PHP的最佳解析器生成器,或用于选择最佳的配方/上下文/条件?”


(添加编辑版)

我认为读者会喜欢通用讨论,但是,为了给出一个指南,这里有一些范围

  • (回答@HugoDelsing)一般来说,我“不关心它是如何工作的,但希望得到快速的结果”。在少数情况下,当我“想要完全控制一切”时,我需要优化。

  • (回答@bizzehdee)近年来,我正在解析多种文本字符串:controlled vocabularies的原始文本; Lex URNs;参考文献/参考书目的原始文本和另一个标题文本,如Vancouver Style; CSS strings;日期;电子邮件文本;单位和方程(识别,标准化,最终转换)。在另一个时代,我开发了简单的命令行工具。


好奇心 (这是我发布此问题的动机):my answer关于使用“PHP替代品/ Lex / Yacc方法”每个月都在调整,积极和消极的“有用的选票”......或许它只是表明存在“仇恨和爱”行为,但另一方面,这可能是一个很好的问题!

0 个答案:

没有答案