提升正则表达式,正则表达式,网址和img

时间:2012-05-22 21:48:50

标签: c++ regex boost expression

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

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

如何找到图片(标签)呢?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

在字符类([^http])中重复字符似乎不正确。 djechlin有一个观点,即RE可能不够用于最简单的HTML。