C# 常见Url操作实例(一)、正则表达式匹配URl

来源:互联网 发布:淘宝买大麻种植暗语 编辑:程序博客网 时间:2024/05/21 03:17

一、将相对url转换成绝对url 方法

//将相对uri转换成绝对uri 实例Uri uri = new Uri("http://www.gongjuji.net");Uri uri2 = new Uri(uri, "abc/1234.html");Console.WriteLine(uri2.ToString());//http://www.gongjuji.net/abc/1234.htmlUri uri3 = new Uri(uri, "/md5/encrypt");Console.WriteLine(uri3.ToString());//http://www.gongjuji.net/md5/encrypt
二、识别字符串中的链接

实例1:

string s = "例如:http://www.asd.com,http://wwww.gongjuji.net?name=zhangsan&age=10,http://md5.gongjuji.net/dencrypt/";Regex re = new Regex(@"(?<url>http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?)");MatchCollection mc = re.Matches(s);foreach (Match m in mc){    string url = m.Result("${url}");    Console.WriteLine(url);}
实例2:

string s = "例如:http://www.asd.com";Regex re = new Regex(@"(?<url>http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?)");MatchCollection mc = re.Matches(s);foreach (Match m in mc){    s = s.Replace(m.Result("${url}"), String.Format("<a href='{0}'>{0}</a>", m.Result("${url}")));}Console.WriteLine(s);

四、判断字符串是否是URL

/// <summary>/// 验证是否是URL链接/// </summary>/// <param name="str">指定字符串</param>/// <returns></returns>public static bool IsURL(string str){    string pattern = @"^(https?|ftp|file|ws)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?$";    return IsMatch(pattern, str);}
/// <summary>/// 判断一个字符串,是否匹配指定的表达式(区分大小写的情况下)/// </summary>/// <param name="expression">正则表达式</param>/// <param name="str">要匹配的字符串</param>/// <returns></returns>public static bool IsMatch(string expression, string str){    Regex reg = new Regex(expression);    if (string.IsNullOrEmpty(str))        return false;    return reg.IsMatch(str);}

三、url中添加或修改参数 

public static void Test4(){    //生成random    Random rand = new Random(Environment.TickCount);    int num = rand.Next(1, 100);    /*    * http://news.sina.com.cn    * http://news.sina.com.cn?page=1    * http://news.sina.com.cn?page=1&ts=1341                         &&    * http://news.sina.com.cn?ts=14321&page=1                        ?&    * http://news.sina.com.cn?u=2&ts=14321&page=1                     &&    */    string url = "http://news.sina.com.cn?u=2&ts=14321&page=1";    string ParamText = "ts";    string ParamValue = num.ToString();    Console.WriteLine(BuildUrl(url, ParamText, ParamValue));    Console.Read();}//url里有key的值,就替换为value,没有的话就追加.public static string BuildUrl(string url, string ParamText, string ParamValue){    Regex reg = new Regex(string.Format("{0}=[^&]*", ParamText), RegexOptions.IgnoreCase);    Regex reg1 = new Regex("[&]{2,}", RegexOptions.IgnoreCase);    string _url = reg.Replace(url, "");    if (_url.IndexOf("?") == -1)        _url += string.Format("?{0}={1}", ParamText, ParamValue);//?    else        _url += string.Format("&{0}={1}", ParamText, ParamValue);//&    _url = reg1.Replace(_url, "&");    _url = _url.Replace("?&", "?");    return _url;}


正则匹配URL:http://blog.163.com/m13864039250_1/blog/static/213865248201681884049267/

 

C#域名操作,正则匹配域名


0 0
原创粉丝点击