第二次获得价值 - 在PHP中

时间:2012-06-01 10:24:30

标签: php

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

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

如果您的字符串ALWAYS看起来像这样,只需使用explode()

,您就可以在没有正则表达式的情况下轻松破解它
$string = "E-20-99";
$parts = explode('-', $string);

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

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

echo $string;

答案 2 :(得分:1)

$old_str = 'E-20-99';
$new_str = preg_replace_callback('/(?<=-)\d+$/', function($matches) {
  return $matches[0] + 1;
}, $old_str);