2012-05-22 73 views
2

我需要找到网页HTML源代码中的所有链接和图像。 Actaually我有以下表达式:Boost正则表达式,url和img

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

它应该怎样看待图像(标签)呢?

+0

小心点,你可能会[召唤克苏鲁](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454):) – djf

回答

4

学习Perl和使用HTML :: Parser将花费更少的时间,而不是为了调试这种不适用于病态HTML的正则表达式。我已经可以发现其中的三个链接错误,即使你只是询问图像。

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

0

在字符类([^http])中重复字符显示不正确。 djechlin指出,RE可能不够,但对于最简单的HTML。