如何在PHP中的特定字符后添加字符串

时间:2018-07-16 12:25:05

标签: php

我正在使用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

1 个答案:

答案 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).')';
}

在这里发生的事情如下:

  1. preg_match检查文本是否为我们想要的格式
  2. 我们使用numbers从捕获的命名组explode中生成一个数组
  3. 我们向每个数组元素添加“魔术值”(-7)
  4. 我们正在将文本重新组合在一起