PHP正则表达式替换时,如何直接替换成数组值.
$county=["cn"=>"zhongguo","usa"=>"meiguo","rus"=>"eluosi","$1"=>"none"];$str="allcoun...
$county=["cn"=>"zhongguo","usa"=>"meiguo","rus"=>"eluosi","$1"=>"none"];
$str="allcounty:#cn#,#rus#,#usa#";
echo preg_replace("/\#(\w+)\#/",$county["$1"],$str);
在这里,正则表达式在替换前,程序就先把$county["$1"]的值给提出来了,
我想要的是先正则查找,产生$1=cn,usa,rus,然后再从数组取相应数据。
有什么简便的办法? 展开
$str="allcounty:#cn#,#rus#,#usa#";
echo preg_replace("/\#(\w+)\#/",$county["$1"],$str);
在这里,正则表达式在替换前,程序就先把$county["$1"]的值给提出来了,
我想要的是先正则查找,产生$1=cn,usa,rus,然后再从数组取相应数据。
有什么简便的办法? 展开
2个回答
展开全部
你是想用数组中的值对应替换正则匹配的结果是吧
echo preg_replace("/\#(\w+)\#/e",'$county[\'$1\']',$str);
使用“e”这个正则修饰符,
它会先将字符串替换为,提示不要用“”
allcounty:$county['cn'],$county['rus'],$county['usa']
然后执行eval操作,注意一定要加上\',$country[\'$1\'],因为“e”要求替换后的字符串符合eval语法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询