【www.bbyears.com--英文短信】
匹配域名有以下的格式要求:
1、域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。
2、各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。
3、由多个标号组成的完整域名总共不超过255个字符。
所以匹配域名的正则要
1、由英文数字 和 “_”组成 [-a-z0-9]
2、每级要以“.”连接
3、三级不能域名长度不超过20 {1,20}
测试如下格式:
$search = "/---正则N---/";
if(preg_match($search,$url)){
echo "匹配";
}else {
echo "不匹配";
}
?>
先从网上总结的几个常见的
正则1
b([a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}b
错误匹配:长度>60
正则2
代码如下^(([^-][a-z0-9A-Z-_]+.)*)[^-][a-z0-9A-Z-_]+(.[a-zA-Z]{2,4}){1,2}$
错误匹配:长度>60
错误匹配:www.te_st.com
正则3
代码如下(([wd-_]+.):?[^-_])+w{2,4}
不匹配:www.111cn.net.cn
错误匹配:www.te_st.com
正则4
代码如下[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?
暂无错误
正则5
代码如下(?<=.)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?.)+[a-zA-Z]{2,6}
不匹配二级域名
正则6
代码如下([a-z0-9][a-z0-9-]*?.(?:com|cn|net|org|gov|info|la|cc|co)(?:.(?:cn|jp))?)$
很多顶级域名不匹配
例
代码如下
$search = "~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(?([^#]*))?(#(.*))?~i";
$url = "http://www.111cn.net/pub/ietf/uri/#Gonn";
$url = trim($url);
preg_match_all($search, $url ,$rr);
printf("
输出URL数据为:
%sn",var_export( $rr ,TRUE));
/*
各分组如下
$1 = http:
$2 = http
$3 = //www.111cn.net
$4 = www.111cn.net
$5 = /pub/ietf/uri/
$6 =
$7 =
$8 = #Gonn
$9 = Gonn
*/
?>