码迷,mamicode.com
首页 > 其他好文 > 详细

正则,匹配网址

时间:2017-09-01 18:58:07      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:字符   class   使用   sha   val   reg   级别   正则表达式   协议   

DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。由多个标号组成的完整域名总共不超过255个字符。

由此匹配完整域名的正则表达式:

   ^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$

例如:baidu.com 

 

 匹配网址:

^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$

例如: http://www.baidu.com

 

匹配http url:

^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*([\?&]\w+=\w*)*$

例如: http://www.tetet.com/index.html?q=1&m=test

 

            string url = "https://www.baidu.com/s?tn=80035161_2_dg&wd=c%23%E6%AD%A3%E5%88%99";
            string pattern = @"^(http(s)?://)";//协议  $1=@"http(s)?://"   $2=@"(s)?"  
            pattern += @"(www.)?";//协议   $3=@"(www.)?";
            pattern += @"(([a-zA-z0-9][-a-zA-z0-9]{0,62})";//域名  $5
            pattern += @"(\.[a-zA-z0-9][-a-zA-z0-9]{0,62})+)";//域名  $6
            pattern += @"(:\d+)*";//端口号  $7
            Regex reg = new Regex(pattern);
            GroupCollection matches = reg.Match(url).Groups;
            string result = "";
            if (matches.Count >5)
            {
                result = matches[4].Value;
            }    

  

 

正则,匹配网址

标签:字符   class   使用   sha   val   reg   级别   正则表达式   协议   

原文地址:http://www.cnblogs.com/panpanwelcome/p/7464511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!