正则匹配-URL-域名 一级域名、二级域名、三级域名有什么区别【网络】顶级域名、一级域名、二级域名、子域名网站部署一级域名、二级域名、子域名到底二级域名和一级域名哪个更利于SEO到底是用二级域名还是二级目录?二级域名设置网站二级域名的配置 在顶级域名下,如何设定二级域名?【转】apache 二级域名设置完整步骤获取一级域名一级域名与二级域名写给域名注册新手:选择最佳域名的几个建议建设网站、独立博客(建站教程系列——申请、解析域名和部署服务器)如何给域名配置

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 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*)*$

例如: ?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 += @"()?";//协议 $3=@"()?"; 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; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdxwp.html