我有一个字符串,如下所示
channel->0->item->0->guid->0
此字符串中的数字可以从0到任意数字
我想将所有 - > N 替换为 [N]
预期结果: channel[0]->item[0]->guid[0]
答案 0 :(得分:1)
只需捕获数字并稍后在替换部分中重新引用它。
preg_replace('~->(\d+)~', '[\1]', $str);
$str = "channel->0->item->0->guid->0";
echo preg_replace('~->(\d+)~', '[\1]', $str);
输出:
channel[0]->item[0]->guid[0]
<强>更新强>
按顺序进行双重替换,以便在第一次替换后删除最后一个N
。
$str = "channel->0->item->0->guid->0";
$str = preg_replace('~->(\d+)(?!$)~', '[\1]', $str);
echo preg_replace('~->\d+$~', '', $str);
输出:
channel[0]->item[0]->guid