|
php 正则表达式提取网页超级链接url的函数
复制代码 代码如下: function match_links($document) { preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx",$document,$links); while(list($key,$val) = each($links[2])) { if(!empty($val)) $match['link'][] = $val; } while(list($key,$val) = each($links[3])) { if(!empty($val)) $match['link'][] = $val; } while(list($key,$val) = each($links[4])) { if(!empty($val)) $match['content'][] = $val; } while(list($key,$val) = each($links[0])) { if(!empty($val)) $match['all'][] = $val; } return $match; }
主要是正则的问题,下面给出个asp.net下的,多测试正则 获取页面的链接正则 复制代码 代码如下: public string GetHref(string HtmlCode) { string MatchVale = ""; string Reg = @"(h|H)(r|R)(e|E)(f|F) *= *('|"")?((\w|\\|\/|\.|:|-|_)+)('|""| *|>)?"; foreach (Match m in Regex.Matches(HtmlCode, Reg)) { MatchVale += (m.Value).ToLower().Replace("href=", "").Trim() + "||"; } return MatchVale; }
|
|