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;
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式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全部匹配,直到字符串结...