使用 RegEx 可靠地解析 HTML 元素 [重复]

2024-01-16

可能的重复:
使用 PHP 解析 HTML 的最佳方法 https://stackoverflow.com/questions/3577641/best-methods-to-parse-html-with-php

我正在尝试使用正则表达式解析网页,但在使其以可靠的方式工作时遇到了一些麻烦。

假设我想解析创建 div 元素的代码,并且我想提取之间的所有内容<div> and </div>。现在,这段代码could只是<div></div>,但它也很可能是这样的:

<div class="thisIsMyDivClass"><p>This text is inside the div</p></div>

如何确保无论初始 div 标签和相应的最后一个 div 标签的大于/小于符号之间有多少个字符,我都会始终only获取中间的内容them?如果我指定后面的字符数<可以是从一到一万的任何东西,我将始终提取>一万个字符之后,因此(很可能,除非中间有很多代码或文本)检索一堆我不需要的代码。

这是我到目前为止的代码(由于上述原因不可靠):

/<.{1,10000}>/


正则表达式描述了所谓的正则语言 - 或类型 3乔姆斯基层次结构 http://en.wikipedia.org/wiki/Chomsky_hierarchy。另一方面HTML 是一种上下文无关的语言 https://stackoverflow.com/questions/5175840/is-html-a-context-free-language这是乔姆斯基层次结构中的类型 2。所以:一般来说,没有办法用正则表达式可靠地解析 HTML。请改用 HTML 解析器。对于 PHP,您可以在这个问题中找到一些建议:如何在 PHP 中解析和处理 HTML/XML? https://stackoverflow.com/questions/3577641/best-methods-to-parse-html-with-php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 RegEx 可靠地解析 HTML 元素 [重复] 的相关文章

随机推荐