正则表达式:最大匹配与最小匹配

PHP正则配批的脚本如下

  1. <?php   
  2. $mode="/abc(.*)g/i";   
  3. $str="abcdefgabcdefg";   
  4. preg_match($mode,$str,$res);   
  5. echo $res[0];   
  6. ?>  

打印出“abcdefgabcdefg”,因为它尽可能多地匹配模式,直至结尾的‘g’。 要改变匹配特点,只须简单地在量词(加号[+]或星号[*])后面加一个问号(?)即可。在上面的程序中把模式改为在‘+’之后包含一个‘?’格式如下。

$mode = "/abc(.*?)g/i";

输出变成“ abcdefg ”,因为模式不再贪婪,这也是正则的最小匹配,对于需要循环得到的内容,一般是需要用到最小匹配。

当然在php中你可以在模式之外添加模式修正符 "U" 来设置禁止贪婪匹配。

正则表达式教程之模式修正符使用介绍 http://www.jb51.net/article/31450.htm

你可能感兴趣的:(正则表达式)