一聚教程网:一个值得你收藏的教程网站

PHP 正则匹配字符串URL地址与域名代码

mg电子:  杂志从今年第1期起关注800余万北漂者的生存状态和奋斗史,开设了“北漂故事”栏目和发起了“北漂故事”征文,越来越多地吸引着众多北漂者的参与。

时间:2013-05-23 00:00:00 编辑:简简单单 来源:转载

匹配域名有以下的格式要求:

1、域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。

2、各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。

3、由多个标号组成的完整域名总共不超过255个字符。

 
所以匹配域名的正则要

1、由英文数字 和 “_”组成    [-a-z0-9]

2、每级要以“.”连接

3、三级不能域名长度不超过20 {1,20}

 
测试如下格式:

 代码如下
<?php
$url = 'www.bjxdzj.com';
$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.bjxdzj.com.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))?)$

 很多顶级域名不匹配

 代码如下

<?php
$search = '~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(?([^#]*))?(#(.*))?~i';
$url = 'http://www.bjxdzj.com/pub/ietf/uri/#Gonn';
$url = trim($url);
preg_match_all($search, $url ,$rr);
printf("<p>输出URL数据为:</p><pre>%s</pre>n",var_export( $rr ,TRUE));

/*
各分组如下
      $1 = http:
      $2 = http
      $3 = //www.bjxdzj.com
      $4 = www.bjxdzj.com
      $5 = /pub/ietf/uri/
      $6 = <undefined>
      $7 = <undefined>
      $8 = #Gonn
      $9 = Gonn
*/
?>

文章评论

热门栏目

合作: 娱乐城 金沙贵宾会 mg电子