请问正则表达式的贪婪模式与非贪婪模式有什么区别?
网友回复
我们以php为例
贪婪模式匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配,默认情况下是贪婪模式。代码如下:
<?php $str = ".abcdeabcde"; preg_match('/a.+e/', $str, $match); print_r($match);
上面代码返回结果如下:
Array ( [0] => abcdeabcde )非贪婪匹配:就是匹配到结果就好,就少的匹配字符,只要在贪婪模式后面增加一个?就是非贪婪模式了。代码如下:
<?php $str = ".abcdeabcde"; preg_match('/a.+?e/', $str, $match); print_r($match);上面代码返回结果如下:
Array ( [0] => abcde )当?紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的;