- 46浏览
- 2023-07-23
定义:
preg_match_all:从左边开始一直到尾部,找出所有匹配的字符串。匹配结果$matches为二维数组,$matches[0]是匹配到的完整结果,$matches[1]是匹配到完整结果的字组。
preg_match:从左边开始,匹配到第一个符合字符串后停止匹配。匹配结果$matches为一维数组,$matches[0]是匹配到的完整结果,$matches[1]是匹配到完整结果的字组。
示例1:
$str = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/", $str, $matches);
print_r($matches);
//返回
preg_match_all:
Array
(
[0] => Array
(
[0] => <b>PHP</b> <br> Title: <b>Programming Language</b>
)
[1] => Array
(
[0] => PHP</b> <br> Title: <b>Programming Language
)
)
preg_match:
Array
(
[0] => <b>PHP</b> <br> Title: <b>Programming Language</b>
[1] => PHP</b> <br> Title: <b>Programming Language
)
说明:{m,n}、{m,}、?、*、+这类数量修饰符默认会使用贪婪匹配尽可能多的匹配。可在后面增加?符号来使用惰性匹配,比如+?;另外也可用U修饰符达到相同结果,参照示例2。
示例2:
$str = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $str, $matches);
print_r($matches);
//返回
preg_match_all:
Array
(
[0] => Array
(
[0] => <b>PHP</b>
[1] => <b>Programming Language</b>
)
[1] => Array
(
[0] => PHP
[1] => Programming Language
)
)
preg_match:
Array
(
[0] => <b>PHP</b>
[1] => PHP
)
说明:当贪婪匹配时,preg_match_all的$matches[0]与$matches[1]结果只有一个;惰性匹配时,可能存在多个。
示例3:
preg_match_all( "/(\w)+/" , "abc" , $matches);
print_r($matches);
//返回
preg_match_all:
Array
(
[0] => Array
(
[0] => abc
)
[1] => Array
(
[0] => c
)
)
preg_match:
Array
(
[0] => abc
[1] => c
)
说明:因为数量修饰符为+属于贪婪匹配,会尽可能多的匹配,所以完整匹配结果为abc;子组为(\w),只能为单个字符,所以子组的匹配结果为c。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。