知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > PHP编程

php中preg正则函数使用

发布时间:2015-05-27 19:18:59作者:知识屋

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使用实例

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜