正则表达式中每个元字符匹配一个字符,当使用+之后将会变的贪婪,它将匹配尽可能多的字符,但使用问号?字符时,它将尽可能少的匹配字符,既是懒惰模式。

来源:3-4 贪婪模式与懒惰模式

三只松鼠

2016-01-14 22:33

那么,如果正则表达式出现了

*?
*+
?+
+?

这四个有意义么,有的话分别是懒惰、贪婪、懒惰、懒惰吗

写回答 关注

1回答

  • 三只松鼠
    2016-01-14 22:51:19

    借用别人代码试验发现,

    $subject = "abcddef";
    $pattern = '/a(.*?)d/';
    preg_match($pattern, $subject, $matches);
    print_r($matches);

    *?和+?都是懒惰模式,输出是Array (    [0] => abcd    [1] => bc );*+和?+这两种输出是Array ( )

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181835 学习 · 2577 问题

查看课程

相似问题