如何让正则表达式匹配多处替换不同的值
类似于这样的字符串:
$str = '
<type>内容,<code>数字,<type>字母
<code>内容,<type>数字,<type>字母
';
期望得到的替换结果:
type:1内容,code:1数字,type:2字母
code:2内容,type:3数字,type:4字母
正则表达式构思为:
$p = [
'/^<(type)>$/',
'/^<(code)>$/',
];
替换为:
$res = '${1}:';//这里不知道怎么写
$str = preg_replace($p, $res, $str);
如果不用循环的话(要替换的标签很多),单纯用数组怎么实现起来会性能高一点,优雅一点呢?
感谢大佬,卡一天了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
js的实现方式,php可以使用preg_replace_callback
我只知道js写法
看代码是
PHP
没有全部替换是你的 正则写法有问题
不要用
^
和$
'/^<(type)>$/'
改成'/<(type)>/'
'/^<(code)>$/'
改成'/<(code)>/'