当前位置: 首页 > 图文教程 > 网络编程 > 正则表达式 > php 正则表达式提取网页超级链接url的函数

正则表达式
能说明一下GETROWS的用法吗?
用正则表达式过滤html代码
ubb js
正则表达式在javascript中的几个实例
简单的Html转换UBB的程序
求个简单正则
JScript中正则表达式用法详解
文本框输入限制 [大全]
UBB代码在论坛中的应用
论坛UBB代码 推荐
将 html 转成 ubb代码的小脚本
正则表达式 c#
验证注册用户名必须为字母
自动识别HTML的标记 替换连接
正则限制文本输入
取字和字符的长度
JavaScript中的正则表达式解析
关于表格的正则表达式讨论(表格)
Html转换UBB程序
得到连接和图片的地址 正则

php 正则表达式提取网页超级链接url的函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 466 ::
收藏到网摘: n/a

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;
}