首页 > 解决方案 > 替换文本并以逗号分隔添加到尾随数字字符

问题描述

我有一个字符串如下...

$myString = "2,4,5,8,9,11,Inventory2,Inventory3,Inventory4,Inventory5"

我想搜索前缀为“Inventory”的任何内容,并替换为动态生成的数字。例如,数字是“24”,它会将 24 加到 2 中,使第一个匹配结果为 26。

最终结果应将字符串变为"2,4,5,8,9,11,26,27,28,29"

我知道如何搜索和替换库存,但我无法弄清楚如何添加到尾随编号。想法?

$str = "$comma_separated"; 
$expression = 'Inventory(\*),'; 
$replace = '24'; 
$newStr = str_replace("Inventory","24","$comma_separated"); 

我使用静态数字进行测试

标签: php

解决方案


preg_replace_callback可以做到:

$v = 24;
$myString = "2,4,5,8,9,11,Inventory2,Inventory3,Inventory4,Inventory5";
echo preg_replace_callback(
    '/Inventory(\d+)/',
    function ($m) use ($v) {
        return $v + $m[1];
    },
    $myString
);

推荐阅读