0

文字列にE-20-99があり、最後の値99を取得し、1を追加すると100を意味し、新しい文字列E-20-100を生成したいと考えています。

4

3 に答える 3

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

文字列が常にこのようになっている場合は、を使用するだけで、正規表現なしで簡単に文字列を壊すことができます。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 に答える
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 に答える