1.preg_match和preg_match_all的区别
preg_match和 preg_match_all区别是preg_match只匹配一次。而preg_match_all全部匹配,直到字符串结束。例:
如:String str="abcaxc";
Patter p="ab*c";
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。
非贪婪匹配:就是匹配到结果就好,较少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。
例:
延伸阅读:preg_match_all使用实例
preg_match和 preg_match_all区别是preg_match只匹配一次。而preg_match_all全部匹配,直到字符串结束。例:
<?php //注:正则 /a.+?e/ 是非贪婪模式(因为量词‘+’后面加上了‘?’),如果使用 /a.+?e/U 则变回了贪婪模式 preg_match("/a.+?e/","abcdefgabcdefgabcdefg",$out1); preg_match_all("/a.+?e/","abcdefgabcdefgabcdefg",$out2); var_dump($out1); var_dump($out2); /* 输出: array (size=1) 0 => 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)。
例:
<?php $str = "http://www.baidu/.com?url=www.sina.com/"; preg_match("/http:(.*)com/", $str, $matches1); //贪婪匹配 var_dump($matches1); preg_match("/http:(.*?)com/", $str, $matches2); //非贪婪匹配(量词'*'后面跟上了'?') var_dump($matches2); /* array (size=2) 0 => 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的区别
<?php echo('PREG_PATTERN_ORDER'); preg_match_all("<[^>]+>(.*)</[^>]+>U", "<b>start: </b><b>this is a test</b><b>end</b>", $out1); var_dump($out1); echo('PREG_SET_ORDER'); preg_match_all("<[^>]+>(.*)</[^>]+>U", "<b>start: </b><b>this is a test</b><b>end</b>", $out2, PREG_SET_ORDER); var_dump($out2); /* PREG_PATTERN_ORDER array (size=2) 0 => array (size=3) 0 => string '<b>start: </b>' (length=14) 1 => string '<b>this is a test</b>' (length=21) 2 => string '<b>end</b>' (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_ORDER array (size=3) 0 => array (size=2) 0 => string '<b>start: </b>' (length=14) 1 => string 'start: ' (length=7) 1 => array (size=2) 0 => string '<b>this is a test</b>' (length=21) 1 => string 'this is a test' (length=14) 2 => array (size=2) 0 => string '<b>end</b>' (length=10) 1 => string 'end' (length=3) */ ?>
延伸阅读:preg_match_all使用实例
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
<🎜>:死铁路 - 如何完成所有挑战
4 周前ByDDD
Atomfall指南:项目位置,任务指南和技巧
1 个月前ByDDD

热工具

SublimeText3汉化版
中文版,非常好用

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),