我每天都会看到一些问题,问我如何解析或提取某些 HTML 字符串中的内容,第一个答案/注释总是“不要使用正则表达式解析 HTML,以免您感到愤怒!”(最后一部分有时被省略)。
这让我很困惑,我一直认为解析任何复杂字符串的最好方法是使用正则表达式。那么 HTML 解析器是如何工作的呢?它不是用正则表达式解析。
使用正则表达式的一个特殊原因是,并不总是存在解析选项(例如 JavaScript,其中 DOMDocument 不是普遍可用的选项)。例如,jQuery 似乎可以很好地使用正则表达式将 HTML 字符串转换为 DOM 节点。
不知道是否要 CW 这一点,这是一个真正的问题,我希望得到回答,并没有真正打算成为一个讨论的线索。