我需要找到网页HTML源代码中的所有链接和图像。 Actaually我有以下表达式:Boost正则表达式,url和img
boost::regex findurl("(?s)<\\s*a\\s+.*?href\\s*=\\s*['\"]([^http]{1}[^\\s>]*)['\"]", boost::regex::normal | boost::regbase::icase);
它应该怎样看待图像(标签)呢?
我需要找到网页HTML源代码中的所有链接和图像。 Actaually我有以下表达式:Boost正则表达式,url和img
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指出,RE可能不够,但对于最简单的HTML。
小心点,你可能会[召唤克苏鲁](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454):) – djf