我每天看到很多问题,询问如何解析或从HTML字符串中提取内容,第一个答案/评论始终是“不要使用RegEx解析HTML,以免感到愤怒!” (有时会省略最后一部分)。
这对我来说很混乱,我一直认为,一般而言,解析任何复杂字符串的最佳方法是使用正则表达式。那么HTML解析器如何工作?它不使用正则表达式进行解析。
使用正则表达式的一个特殊论点是,并不总是存在解析替代方法(例如JavaScript,其中DOMDocument不是普遍可用的选项)。以jQuery为例,使用正则表达式将HTML字符串转换为DOM节点似乎可以很好地进行管理。
不确定是否要继续进行此操作,这是一个真正的问题,我想得到回答,而并不是要成为讨论话题。
通常通过使用令牌处理程序。HTML5规范草案具有用于处理“现实世界HTML”的广泛算法。