我需要在网页的 HTML 源代码中找到所有链接和图像。实际上我有以下表达:
boost::regex findurl("(?s)<\\s*a\\s+.*?href\\s*=\\s*['\"]([^http]{1}[^\\s>]*)['\"]", boost::regex::normal | boost::regbase::icase);
还应该如何查找图像(标签)?
我需要在网页的 HTML 源代码中找到所有链接和图像。实际上我有以下表达:
boost::regex findurl("(?s)<\\s*a\\s+.*?href\\s*=\\s*['\"]([^http]{1}[^\\s>]*)['\"]", boost::regex::normal | boost::regbase::icase);
还应该如何查找图像(标签)?
学习 Perl 和使用 HTML::Parser 所花费的时间比调试这个不适用于病态 HTML 的正则表达式要少。我已经可以在其中发现三个链接错误,即使您只询问图像。
这包括示例代码,即使您不了解 Perl,您也可能知道如何修改。 http://perlmeme.org/tutorials/html_parser.html
在字符类 ( [^http]
) 中重复出现字符似乎不正确。djechlin 的观点是,对于最简单的 HTML,RE 可能是不够的。