龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

C#使用正则表达式把相对地址转化为绝对地址

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
本文就应用C#的正则表达式来获取URL,并转化为绝对路径,请看下面实现的方法。 基本思路: 1、先用正则得到所有的页面源码中所有的url, 可以参考这个 (?=href\s*=)(?:[ \s""']*)(?!#|mailt

本文就应用C#的正则表达式来获取URL,并转化为绝对路径,请看下面实现的方法。

基本思路:
1、先用正则得到所有的页面源码中所有的url,
可以参考这个
(?<=href\s*=)(?:[ \s""']*)(?!#|mailto|location.|javascript|.*css|.*this\.)[^""']*(?:[ \s>""'])
 得到的值可能如下:
"/company/list.aspx"
"http://www.sohu.com/index.html"
..
2、然后再拼接加上前缀,这个前缀就是你的页面的根目录,之前就已经知道的。
大概写了个简单例子:获取页面内容部分省略了·! 网上资源很多。

Code [http://www.xueit.com]
public static void Main(string[] args)
{
    string minHtml = string.Empty;
    string url = @"http://www.agronet.com.cn/default.aspx";
    string preurl = url.Remove(url.IndexOf('/', 8)   1);//获取url的根目录地址
    minHtml = GetRequestString(url, 6000, 1, System.Text.Encoding.UTF8);//获取指定页面的内容
    Console.WriteLine(preurl);
    GetUrlListBHtml(minHtml,preurl);
    Console.ReadKey();
}
/// <summary>
/// 获取html内容中的相对url地址,并向相对地址添加前缀
/// </summary>
/// <param name="text">html内容</param>
/// <param name="pre">要添加的绝对地址前缀</param>
public static void GetUrlListBHtml(string text,string pre)
{
    string pat = @"(?<=href\s*=)(?:[ \s""']*)(?!#|mailto|location.|javascript|.*css|.*this\.)[^""']*(?:[ \s>""'])";
    // Compile the regular expression.
    System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(pat, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
    // Match the regular expression pattern against a text string.
    System.Text.RegularExpressions.Match m = r.Match(text);
    int matchCount = 0;
    while (m.Success)
    {
        string urlX=m.Value.Replace("\"","");//替换引号
        if (urlX.IndexOf("/") == 0)//相对地址
        {
            matchCount  ;
            Console.WriteLine(""   matchCount "个相对地址:");
            Console.WriteLine("原地址是" urlX);
            Console.WriteLine("新的绝对地址是"   pre urlX);
            Console.WriteLine("------------------------------------");
        }
        m = m.NextMatch();
    }
}
收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接