为了账号安全,请及时绑定邮箱和手机立即绑定

求教一个PHP正则表达式的问题

求教一个PHP正则表达式的问题

MMMHUHU 2019-04-09 20:23:37
求教一个PHP正则表达式的问题。一个字符串形如abcdeXeeeY((XabcYcddX))Xmmdkf((adjjkYxxx)),现在想把包含在(())的内的X和Y分别替换成$和@,用preg函数如何做到呢?
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我不是正则表达式的骨灰级大神,我相信很多人也不是。
所以我建议,把事情做的简单显然一些,减少很tricky的技巧未尝不是一件好事:
$patt='/\(\([^\(\)]*?\)\)/';
$subj='abcdeXeeeY((XabcYcddX))Xmmdkf((adjjkYxxx))';
echopreg_replace_callback($patt,function($matches){
returnstr_replace('Y','@',str_replace('X','$',$matches[0]));
},$subj);
//abcdeXeeeY(($abc@cdd$))Xmmdkf((adjjk@xxx))
注1:匿名函数语法,需要php5.3+的支持。低版本php需要将回调函数按一般函数定义。
注2:这个答案并没有考虑双括号组嵌套的情况。
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号