我知道this post,我已经阅读过了,但我仍然想知道HTML解析器(可能)使用什么语言?我的意思是,它是用正则表达式解析整个源代码还是使用普通的编程语言,如c#或python?
除了上面的问题,你还可以向我介绍我应该从哪里开始创建自己的解析器吗? (我想根据个人需要创建一个html解析器:)
答案 0 :(得分:2)
Python,Java和Perl都是学习编写HTML解析器的优秀语言。 Perl对于正则表达式来说非常愉快,但这不是解析器所需要的。用Python或Java编写OO程序更令人愉快。对于非常快速的解析器,C / C ++ / C#等也很常见。但是,作为一个学习练习,我推荐Python或Java,以便您可以将您的工作与标准解析器进行比较。
答案 1 :(得分:1)
标准方法是使用一些Yacc / Lex二重奏; second生成一个将代码拆分为标记的代码,首先构建一个将标记流转换为某个所需结构的代码。
还有一些更诱人的选择Ragel。在这里,您只需编写一个类似于regexp的大型结构,该结构能够匹配整个文件并定义一个钩子,当某个子模式匹配时它将触发。