2

我知道这篇文章,我已经阅读了它,但我仍然想了解 html 解析器(可能)使用什么语言?我的意思是,它是用正则表达式解析整个源代码还是使用普通的编程语言,如 c# 或 python?

除了上面的问题,你能否简要介绍一下我应该从哪里开始创建自己的解析器?(我想为我的个人需求创建一个 html 解析器 :)

4

2 回答 2

2

Python、Java 和 Perl 都是学习编写 HTML 解析器的好语言。Perl 非常适合正则表达式,但这不是解析器所需要的。用 Python 或 Java 编写 OO 程序会更愉快一些。C/C++/C# 等也很常见,用于非常快速的解析器。但是,作为学习练习,我推荐使用 Python 或 Java,以便您可以将您的工作与标准解析器进行比较。

于 2011-07-29T18:15:06.333 回答
1

标准方法是使用一些 Yacc/Lex Duet;第二个编写将代码拆分为令牌的代码,首先构建一个将令牌流转换为某种所需结构的代码。

还有一些更诱人的选择,Ragel。在这里,您只需编写一个能够匹配整个文件的大的类似正则表达式的结构,并定义一个在匹配某个子模式时将触发的钩子。

于 2011-08-01T17:22:12.380 回答