日期:2014-05-17  浏览次数:20520 次

问一个正则
PHP code

//匹配一个简单的URL
$reg = '/(http:\/\/)?(.*\.)*[(com)|(cn)|(net)]/';
$str = 'www.baidu.com/1/2/3/4/5/6';

preg_match($reg, $str, $match);
var_dump($match);



问题:
为什么打印$match结果是:
array(3) { [0]=> string(11) "www.baidu.c" [1]=> string(0) "" [2]=> string(10) "www.baidu." } 

只匹配到了www.baidu.c ???


谢谢!

------解决方案--------------------
探讨
[]的意思不就是取中括号中任意一个原子吗?如果不加+号,不就说明要她们中的一个必须且只能出现一次吗?