浅谈php正则表达式中的非贪婪模式匹配的使用

通常我们会这么写:


$str = "http://www.baidu/.com?url=www.sina.com/";

preg_match("/http:(.*)com/", $str, $matches);

print_r($matches);

结果:


Array ( [0] => http://www.baidu/.com?url=www.sina.com [1] => //www.baidu/.com?url=www.sina. )

非贪婪模式匹配:


$str = "http://www.baidu/.com?url=www.sina.com/";

preg_match("/http:(.*?)com/", $str, $matches);

print_r($matches);

结果:


Array ( [0] => http://www.baidu/.com [1] => //www.baidu/. )

简单的说只要在一个字符后面跟上限定个数的特殊字符,匹配就是非贪婪模式了。小伙伴们是否理解了呢?