我想在字符串中找到一个数字,向其中添加一个,然后替换它。这些不起作用:
$new_version =
preg_replace("/str\/(\d+)str/", "str/".("$1"+1)."str", $original);
$new_version =
preg_replace("/str\/(\d+)str/", "str/".(intval("$1")+1)."str", $original);
'str'是一个非常易于识别的字符串,数字的每一面(并且不包含数字)。
我意识到我可以很容易地在多行代码中做到这一点,但是看来这应该是可能的。
答案 0 :(得分:3)
使用回调函数可让您对数字和增量进行匹配,例如:
preg_replace_callback(
"/str\/(\d+)str/",
function($matches) { return "str/" . ((int)$matches[1] + 1) . "str"; },
$original
);
答案 1 :(得分:0)
仅使用str_replace
,您就可以从字符串中获取数字,并将其添加一个,然后用新的数字替换旧的数字:
$str = 'In My Cart : 11 items';
$nb = preg_replace('/\D/', '', $str);
$nb += 1;
$str = str_replace($nb-1, $nb, $str);
echo $str;