+
80
-

正则表达式的贪婪模式与非贪婪模式有什么区别?

php

请问正则表达式的贪婪模式与非贪婪模式有什么区别?

网友回复

+
0
-

我们以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})后面时,匹配模式是非贪婪的;
我知道答案,我要回答