什么是解析?

51
在开发中,我经常遇到解析(Parsing)的问题,但作为一名初级开发者,我认为会在需要的时候掌握它。在我的当前项目中,我被告知要找到并使用一个HTML解析器来完成某个功能,我在网上找到了几个。
但是,HTML解析器实际上是做什么的?解析对象又意味着什么?

2
我认为这篇维基百科文章是一个很好的起点。 - KB22
8个回答

77

解析通常应用于文本-将读取文本并将其转换为更有用的内存格式,从某种程度上“理解”它的含义。例如,XML解析器将获取字符(或字节)序列并将其转换为元素、属性等。

在某些情况下(特别是编译器),存在词法分析和语法分析之间的分离,因此解析器的真正“理解”部分是在一系列标记(标识符、运算符等)而不是原始字符上工作。


17

解析是指从一组数据中提取有意义的信息。在进行 HTML 解析时,您需要阅读一些 HTML,并返回一组结构化的标签和文本。


10
你可以从这里开始:http://en.wikipedia.org/wiki/Parsing。简短摘录如下:

解析或语法分析是分析符号串的过程,无论是自然语言还是计算机语言,都要符合形式语法的规则。解析这个术语源于拉丁文pars(orationis),意为“语音的一部分”。


5

1
解析和语法分析是一样的吗? - Ini
以下内容源自《龙书》:编译器的第二个阶段是语法分析或解析。解析器使用词法分析器产生的令牌的前几个组成部分,创建一种树状的中间表示形式,描述了令牌流的语法结构。一个典型的表现形式是语法树,其中每个内部节点代表一个操作,节点的子节点代表操作的参数。令牌流 (1 .2) 的语法树如下所示。 - oskar132

3

解析器是编译器/解释器组件,它将数据分解为较小的元素以便于翻译成另一种语言。解析器接受以令牌序列或程序指令形式的输入,并通常构建一个解析树或抽象语法树形式的数据结构。


2
在计算机科学和语言学中,解析(parsing),或更正式地说,句法分析(syntactic analysis),是分析由一系列标记(例如单词)组成的文本的过程,以确定其相对于给定的(或多或少)形式化语法的语法结构。

解析和语法分析是一样的吗? - Ini

1

它是识别 HTML 中的标记 [标签、属性] 的过程。


1

不要试图自己编写除了微不足道的解析器之外的任何东西。有很好的工具可以使用,ANTLRbison是我能想到的两个。

如果你使用这些工具,当你遇到问题时就可以寻求帮助。

祝好, 马丁。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接