正则,匹配网址
Posted 晴天彩虹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则,匹配网址相关的知识,希望对你有一定的参考价值。
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)?://)";//协议 [email protected]"http(s)?://" [email protected]"(s)?" pattern += @"(www.)?";//协议 [email protected]"(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; }
以上是关于正则,匹配网址的主要内容,如果未能解决你的问题,请参考以下文章