重点语法知识
preg_match_all:执行一个全局正则表达式匹配。
preg_match_all( string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0 ): int|false|null
搜索subject中所有匹配pattern给定正则表达式的匹配结果并且将它们以flag指定顺序输出到matches中.
在第一个匹配找到后, 子序列继续从最后一次匹配位置搜索.
重点就这一个PHP的关键函数也是经常用到一个正则匹配函数,正如手册所说的就是专门用于执行正则表达式的,preg_match_all函数会返回一个多维数组给指定的参数matches变量。
代码部分
简单的写了个测试的代码,实践见真理比较重要!
#测试文本段 $txtTest = '澳大利亚昆士兰大堡礁 (© Gary Bell/Minden Pictures)'; #正则提取括号内的字符段,并赋值给$textOk,类型为array preg_match_all('/\((.*)\)/s', $txtTest, $textOk); #输出截取的文本段 print_r($textOk);
可以看看匹配正则后赋值给$textOk变量的情况是一个数组类型,阁主自己的理解是正则匹配至少会匹配出两个或两个以上的数据段,说以返回的参数数据是数组类型,打印出来的可以很清晰的看到是这样的,第一个是绝对匹配包括小括号的,第二个是对应的弱(子)匹配,很多时候我们想要的都是第二种,所以就把它返回的当做数组来处理即可。
就比如我们要输出不带括号和带括号的就是如下运用,代码是死的但是人是活的,要灵活使用!基础也很重要!
<?php #测试文本段 $txtTest = '澳大利亚昆士兰大堡礁 (© Gary Bell/Minden Pictures)'; #正则提取括号内的字符段,并赋值给$textOk,类型为array preg_match_all('/\((.*)\)/s', $txtTest, $textOk); #输出带括号 echo '带括号:' . $textOk[0][0] . '<br>'; #输出不带括号 echo '不带括号:' . $textOk[1][0] . '<br>';
总结
基础很重要,正则在很多应用中都会出现,更多的是用于验证或采集的方面,道生一,一生二,二生万物,万物离不开学习,加油!
本文地址:https://www.mainblog.cn/258.html
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。