一个URL格式正则的解释

作者:enenba | 发表于:2012-04-03 21:28 | 分类:正则表达式

问题:

preg_match("#[_=&///?\.a-zA-Z0-9-]+$#i", $softurl1) 这句php正则表达式是什么意思能详细解释下吗

 

("#[_=&///?\.a-zA-Z0-9-]+$#i
这个语法规则我看不懂
if(!preg_match("#(http:\/\/)?([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?#i",$softurl)){
                ShowMsg("请使用标准的url格式", "-1");
                exit();
            }

 

顺便看看这句里的正则是什么意思,一个单元一个单元的解释下好吗
 


解答:
#[_=&///?\.a-zA-Z0-9-]+$#i
意思是 一个字符串以_=&/?\.a-zA-Z0-9-这些字符中的一个或者多个结尾


#(http:\/\/)?([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?#i
第二个匹配URL格式
(http:\/\/)? 以http://开头或者没有(问号表示这个http://可以不存在)


([\w-]+\.)+后面跟上字母数字下划线短横线的一个或者多个加上一个点号 加号的意思是这个字符串可以重复多次, 也就是可以是abc.也可以是ad-bc.oe_tc.这样的形式


[\w-]+ 刚才的字符串后面跟上字母数字下划线短横线一个或者多个


(/[\w- ./?%&=]*)? 刚才的字符串后面再跟上一个/ 然后后面的字符是字母数字下划线短以及 ./?%&=这几个字符多次或者没有, 问号的意思是这一条的整个字符串也可以不存在


总之就是匹配URL啦

上一篇: 将[code]标签内的所有<br/>替换成#号   |   下一篇:匹配一个<table>并过滤中间table» 标签: 正则 正则匹配 正则表达式

评论: