最近做项目遇到一个问题 就是正则表达式的反向引用、之前一直没有接触到反向这块、比如说1234dsjkfasdjfl,1312sadfsadfasdfas,4646sadfasdfasdfas这个字符串 要把里面的连续的4个字符替换成我想要的东西(如 echo $this->val['1234'])中括号里面的值不能改变、还是原来的值。想了很长时间都不知道怎么去替换。最后在网上查了一下、用正则可以去替换
在替换之前首先要了解 preg_replace($pattern,$replacement,$subject); 函数、函数里面有3个参数、$pattern 就是你的正则表达式、(可以是数组)$replacement要替换的内容(可以是数组)。$subject替换的字符串。
$par=”1234dsjkfasdjfl,1312sadfsadfasdfas,4646sadfasdfasdfas”;
首先正则匹配4个连续的数字 用数组形式 把要捕获的用括号括起来
$a=array(
‘/(\d\d\d\d)/i’
);
正则匹配要替换的内容 数组形式
$b=array(
‘ echo $this->vars["${1}"] ‘
);
函数匹配:
preg_replace($a,$b,$par);
这个就可以轻松实现了数据直接的转换
输入结果:
echo $this->vars["1234"]dsjkfasdjfl,echo $this->vars["1312"]sadfsadfasdfas,echo $this->vars["4646"]sadfasdfasdfas
如果你有外贸企业网站建站需求,欢迎随时联系我们
QQ客服:415682727
电话:020-39907297