正則表達式:最大匹配與最小匹配


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM