模式匹配并替换字符串中的数字
Pattern Match and replace numbers in a string
我有一个如下所示的字符串
channel->0->item->0->guid->0
此字符串中的数字可以从 0 到任何数字
我想把所有->N替换成[N]
预期结果: channel[0]->item[0]->guid[0]
只需捕获数字并稍后在替换部分中反向引用它。
preg_replace('~->(\d+)~', '[]', $str);
$str = "channel->0->item->0->guid->0";
echo preg_replace('~->(\d+)~', '[]', $str);
输出:
channel[0]->item[0]->guid[0]
更新:
进行两次替换,以便在第一次替换后删除最后一个 N
。
$str = "channel->0->item->0->guid->0";
$str = preg_replace('~->(\d+)(?!$)~', '[]', $str);
echo preg_replace('~->\d+$~', '', $str);
输出:
channel[0]->item[0]->guid
我有一个如下所示的字符串
channel->0->item->0->guid->0
此字符串中的数字可以从 0 到任何数字
我想把所有->N替换成[N]
预期结果: channel[0]->item[0]->guid[0]
只需捕获数字并稍后在替换部分中反向引用它。
preg_replace('~->(\d+)~', '[]', $str);
$str = "channel->0->item->0->guid->0";
echo preg_replace('~->(\d+)~', '[]', $str);
输出:
channel[0]->item[0]->guid[0]
更新:
进行两次替换,以便在第一次替换后删除最后一个 N
。
$str = "channel->0->item->0->guid->0";
$str = preg_replace('~->(\d+)(?!$)~', '[]', $str);
echo preg_replace('~->\d+$~', '', $str);
输出:
channel[0]->item[0]->guid