PHP中preg_match()和preg_replace()的一些问题
(一)//preg_match("!</p>(*)</card>!isU",$output,$outputs);(二)//$out=$outputs[1];(三)//将“...
(一)//
preg_match("!</p>(*)</card>!isU",$output,$outputs);
(二)//
$out=$outputs[1];
(三)//将“/wap.php”替换为“index.php”
$out=preg_replace('/\/wap\.php/','index.php',$out);
摸索老长时间才写的和预期结果一样的,自己都不明白什么意思。我想问的是,在(一)中那两个!是什么意思,那个isU,好象还看到过i、si、U,这四个啥意思?(二)中[1]的1什么意思?(三)中要替换的"/wap.php"前后为什么要加“/”?额..问题比较多.. 展开
preg_match("!</p>(*)</card>!isU",$output,$outputs);
(二)//
$out=$outputs[1];
(三)//将“/wap.php”替换为“index.php”
$out=preg_replace('/\/wap\.php/','index.php',$out);
摸索老长时间才写的和预期结果一样的,自己都不明白什么意思。我想问的是,在(一)中那两个!是什么意思,那个isU,好象还看到过i、si、U,这四个啥意思?(二)中[1]的1什么意思?(三)中要替换的"/wap.php"前后为什么要加“/”?额..问题比较多.. 展开
2个回答
展开全部
(一)当中的!是正则表达式(简称正则式)的分割界定符号。意味着开始的!和第二个!之间是正则式的【主式】(为了便于你理解,不得不这么做个伪定义),我们大多数时候都喜欢用“/”作为分割界定符号,因为在(一)中,刚好已经有“/”在【主式】中了。第二个!后面的isU等,是正则式的修正符,至于各个修正符的用法和作用,强烈建议你去查看PHP手册。
(二)这个[1]中的1,代表着匹配到结果赋值给$outputs后,$outputs数组的下标为1的值,就是前面【主式】中"(*)"匹配到的内容。
(三)第三个,是正则式中“\”转义符号的用法体现。在正则式中“.”是匹配所有字符的(暂不考虑修正符模式),“\.”却可以匹配“.”了。在这个正则式中,\/wap\.php将会匹配到“/wap.php”,并用“index.php”去替换掉它。
(二)这个[1]中的1,代表着匹配到结果赋值给$outputs后,$outputs数组的下标为1的值,就是前面【主式】中"(*)"匹配到的内容。
(三)第三个,是正则式中“\”转义符号的用法体现。在正则式中“.”是匹配所有字符的(暂不考虑修正符模式),“\.”却可以匹配“.”了。在这个正则式中,\/wap\.php将会匹配到“/wap.php”,并用“index.php”去替换掉它。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询