我需要找到網頁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