我需要为以@
开头的每个单词添加订单ID +唯一ID。
例如,我有 string
,如下所示:
Just @do @it and @do @it.
我希望 preg_replace
#(\@)+([^\s]+)#i
:
Just <div id="1+Unique ID">@do</div> <div id="2+Unique ID">@it</div> and <div id="3+Unique ID">@do</div> <div id="4+Unique ID">@it</div>.
答案 0 :(得分:2)
您可以使用/e
标记preg_replace
来为每次替换运行代码:
$string = 'Just @do @it and @do @it.';
$id = 0;
echo preg_replace('/@\w+/e', '"<div id=\"".++$id."\">\\0</div>"', $string);
输出:
Just <div id="1">@do</div> <div id="2">@it</div> and <div id="3">@do</div> <div id="4">@it</div>.