フォームに文字列があり\d+_\d+
、2 番目の数値に 1 を追加したいと考えています。私の説明は非常に明確なので、いくつかの例を挙げましょう。
- 1234567_2 は 1234567_3 になるはずです
- 1234_10 は 1234_11 になるはずです
これが私の最初の試みです:
$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)$2)+1, $old);
これにより、構文エラーが発生します。
解析エラー: 構文エラー、予期しない T_LNUMBER、201 行目の [...] に T_VARIABLE または '$' が必要です
これが私の2回目の試みです
$new = preg_replace("/(\d+)_(\d+)/", "$1_".("$2"+1), $old);
これは $old = 1234567_2 を $new = 1234567_1 に変換しますが、これは望ましい結果ではありません
私の3回目の試み
$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)"$2"+1), $old);
これは同じ結果になります。
これらの試行を行うことで、新しい $1、$2、$3、.. 変数が実際にどのように機能するかを理解していないことに気付きました。終了時にこれらの変数が存在しなくなっているように見えるため、他に何を試せばよいかわかりません。 preg_replace 関数...
何か案は?