php中preg正則函數使用
1.preg_match和preg_match_all的區別
preg_match和 preg_match_all區別是preg_match只匹配一次。而preg_match_all全部匹配,直到字串結束。例:
string 'abcde' (length=5)array (size=1) 0 => array (size=3) 0 => string 'abcde' (length=5) 1 => string 'abcde' (length=5) 2 => string 'abcde' (length=5) */?>
2.貪婪模式和非貪婪模式的區別
如:String str="abcaxc";
Patter p="ab*c";
貪婪匹配:Regex一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字串str,結果就是匹配到:abcaxc(ab*c)。
非貪婪匹配:就是匹配到結果就好,較少的匹配字元。如上面使用模式p匹配字串str,結果就是匹配到:abc(ab*c)。
例:
string 'http://www.baidu/.com?url=www.sina.com' (length=38) 1 => string '//www.baidu/.com?url=www.sina.' (length=30)array (size=2) 0 => string 'http://www.baidu/.com' (length=21) 1 => string '//www.baidu/.' (length=13) */?>
3.preg_match_all參數PREG_PATTERN_ORDER(預設)和PREG_SET_ORDER的區別
]+>(.*)]+>|U", "start: this is a testend", $out1);var_dump($out1);echo('PREG_SET_ORDER');preg_match_all("|<[^>]+>(.*)]+>|U", "start: this is a testend", $out2, PREG_SET_ORDER);var_dump($out2);/*PREG_PATTERN_ORDERarray (size=2) 0 => array (size=3) 0 => string 'start: ' (length=14) 1 => string 'this is a test' (length=21) 2 => string 'end' (length=10) 1 => array (size=3) 0 => string 'start: ' (length=7) 1 => string 'this is a test' (length=14) 2 => string 'end' (length=3)PREG_SET_ORDERarray (size=3) 0 => array (size=2) 0 => string 'start: ' (length=14) 1 => string 'start: ' (length=7) 1 => array (size=2) 0 => string 'this is a test' (length=21) 1 => string 'this is a test' (length=14) 2 => array (size=2) 0 => string 'end' (length=10) 1 => string 'end' (length=3) */?>
延伸閱讀:preg_match_all使用執行個體
http://www.bkjia.com/PHPjc/894184.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/894184.htmlTechArticlephp中preg正則函數使用 1.preg_match和preg_match_all的區別 preg_match和 preg_match_all區別是preg_match只匹配一次。而preg_match_all全部匹配,直到字串結...