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

正则里的贪婪表达式。。
PHP code

$a = '<b>aaa</b><b>bbb</b><b>ccc</b>';

$pattern1 = '/<b>.*?<\/b>/';
$pattern2 = '/^<b>.*?<\/b>$/';



用$pattern1和$pattern2与$a进行匹对,第一个能匹配出'<b>aaa</b>'、'<b>bbb</b>'、'<b>ccc</b>'这三个
但是用$pattern2只能匹对出'<b>aaa</b><b>bbb</b><b>ccc</b>',也就是.*?的贪婪模式没起作用,这是为什么???

谢谢!

------解决方案--------------------
因为你加了结尾符$ 所以它就一直匹配到字符串末尾。

即使去掉了$ 也只能匹配第一个<b>aaa</b>,因为你加了 ^