0

我在一个字符串中有 E-20-99,我想得到最后一个值 99 并添加 1 表示 100,然后想要生成新的字符串 E-20-100。

4

3 回答 3

1
$old_str = 'E-20-99';
$new_str = preg_replace_callback('/(?<=-)\d+$/', function($matches) {
  return $matches[0] + 1;
}, $old_str);
于 2012-06-01T10:32:07.207 回答
1

如果字符串总是 E-20-XX 你可以使用

$n = ((int)substr('E-20-99', strlen('E-20-')))+1;
echo 'E-20-' . $n;

如果字符串可能变化更多,您可以使用正则表达式,例如:

$string = 'E-20-99';
preg_match('/(E-\d+-)(\d+)/', $string, $match);
echo $match[1] . ((int)$match[2] + 1);
于 2012-06-01T10:28:09.470 回答
1

如果您的字符串 ALWAYS 看起来像这样,您可以轻松地在没有正则表达式的情况下打破它,只需使用explode()

$string = "E-20-99";
$parts = explode('-', $string);

$last_part = $parts[2] + 1;
$parts[2] = $last_part;

$string = implode('-', $parts);

echo $string;
于 2012-06-01T10:28:55.093 回答