类似于这样的字符串:
$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);
如果不用循环的话(要替换的标签很多),单纯用数组怎么实现起来会性能高一点,优雅一点呢?
感谢大佬,卡一天了。
js的实现方式,php可以使用preg_replace_callback
我只知道js写法
str.replace(/(,|<|>)/g,'').replace(/(type|code)([^(type|code)]*)/g, '$1:$2,')
###看代码是 PHP
没有全部替换是你的 正则写法有问题
不要用 ^
和 $
'/^<(type)>$/'
改成 '/<(type)>/'
'/^<(code)>$/'
改成 '/<(code)>/'