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,然后再从数组取相应数据。
有什么简便的办法?
展开
 我来答
奥丁神王
推荐于2016-10-22 · TA获得超过357个赞
知道小有建树答主
回答量:331
采纳率:100%
帮助的人:394万
展开全部

你是想用数组中的值对应替换正则匹配的结果是吧

 echo preg_replace("/\#(\w+)\#/e",'$county[\'$1\']',$str);

使用“e”这个正则修饰符,

它会先将字符串替换为,提示不要用“”

allcounty:$county['cn'],$county['rus'],$county['usa']

然后执行eval操作,注意一定要加上\',$country[\'$1\'],因为“e”要求替换后的字符串符合eval语法

JTLeon
2014-11-10 · 超过33用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:43.9万
展开全部
$county["$1"]直接写成$county就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式