2

我需要在网页的 HTML 源代码中找到所有链接和图像。实际上我有以下表达:

boost::regex findurl("(?s)<\\s*a\\s+.*?href\\s*=\\s*['\"]([^http]{1}[^\\s>]*)['\"]", boost::regex::normal | boost::regbase::icase);

还应该如何查找图像(标签)?

4

2 回答 2

4

学习 Perl 和使用 HTML::Parser 所花费的时间比调试这个不适用于病态 HTML 的正则表达式要少。我已经可以在其中发现三个链接错误,即使您只询问图像。

这包括示例代码,即使您不了解 Perl,您也可能知道如何修改。 http://perlmeme.org/tutorials/html_parser.html

于 2012-05-22T21:51:15.363 回答
0

在字符类 ( [^http]) 中重复出现字符似乎不正确。djechlin 的观点是,对于最简单的 HTML,RE 可能是不够的。

于 2012-05-22T22:14:50.363 回答