我正在使用php。我有一些动态字符串。现在我想在一些字符串后添加一些数字。像,我有一个字符串this is me (1)
。现在,我要在-7
之后添加1
。因此该字符串应像这样this is me (1-7)
打印。
我已经通过使用substr_replace
正确地做到了。像这样
substr_replace('this is me (1)','-59',-1,-1)
现在,如果有多个以上的数字,例如this is me(2,3,1)
。我想在每个数字后添加-7
。像这样的this is me(2-7,3-7,1-7).
请帮助。 TIA
答案 0 :(得分:3)
我不知道是否有一种好的方法可以在一两行中做到这一点,但是我想出的解决方案看起来像这样:
$subject = "this is me (2,3,1)";
if (preg_match('[(?<text>.*)\((?<numbers>[0-9,]+)\)]', $subject, $matches)) {
$numbers = explode(",", $matches['numbers']);
$numbers = array_map(function($item) {
return $item.'-7';
}, $numbers);
echo $matches['text'].'('.implode(",", $numbers).')';
}
在这里发生的事情如下:
preg_match
检查文本是否为我们想要的格式numbers
从捕获的命名组explode
中生成一个数组