2010-08-11 34 views

回答

1

正则表达式描述定期语言操作。 HTML不是一种常规语言。我准备打赌你可以用一种所谓的“递归正则表达式”来做到这一点,因为它们并不是真正的正则表达式,并且不限于正规语言。我会准备好更多的赌注,无论如何你会更好地解析它。

的easist(不是最好的,但最简单的几行代码),是保持内在的div的计数。每当你遇到一个div标签时,都要记数。当你遇到一个闭合的div标签时,如果它不为零,或者你已经找到了你的完整元素,那么就丢弃它。每当遇到文件结尾时,有人没有正确关闭它们的div。

使用XML解析器是容易还是,如果你可以依赖于代码得到很好的形成(如果你不能,你有两个问题...)或准备在的情况下,只是错误非格式良好的输入。

0

唯一可靠的解决方案是解析HTML,正则表达式不能这样在所有情况下解决。

其实浏览器往往是非常宽容的,他们甚至有错误的应对如缺少

</P>

标签。所以处理任意页面实际上非常棘手。

如果你正在处理,你自己制作一个网页,那么也许你可以编写一些特殊的情况下,正则表达式。否则,您可能需要寻找一个真正的解析器,如this。 (从来没有使用过自己,但它可能是你所需要的。)

相关问题