【发布时间】:2018-09-11 08:22:26
【问题描述】:
我该如何更换这个
Lorem ipsum random_5ac18d179707d dolor random_5ac18d179707d sat amet, consectetur random_5ac18decebd4e adipiscing elit.
有了这个
Lorem ipsum random_1 dolor random_1 sat amet,consectetur random_2 肥胖精英。
它的作用是匹配所有相同的“random_xxxxxxxxxxxxx”,并为该组类似匹配项计数 1。然后,该计数会随着每组额外的类似匹配项而增加。每组可能有一个或多个。
我有以下非常接近但不太正确的内容:
function replace($string) {
$i = 1;
return preg_replace_callback('/random_\w+/', function () use (&$i) {
return 'random_' . $i++;
}, $string);
}
输出如下
Lorem ipsum random_1 dolor random_2 sat amet,consectetur random_3 肥胖精英。
有什么方法可以调整上面的 sn-p 工作吗?
或者也许有一些方法可以使用 preg_match 获取一组唯一匹配项,然后可以循环并用计数器替换?类似的东西:
$string = 'Lorem ipsum random_5ac18d179707d dolor random_5ac18d179707d sit amet, consectetur random_5ac18decebd4e adipiscing elit.';
preg_match('/random_\w+/', $string, $matches);
print_r($matches);
# to get the following array if possible?
Array
(
[0] => random_5ac18d179707d
[1] => random_5ac18decebd4e
)
【问题讨论】: