0

preg 変数を 1 つ下げる必要があります。例:

$code = A4-7;
$new = preg_replace('/A([0-9])\-([0-9])/', 'S($1-1)-$2', $code);

そのようなことをする必要があるので、preg replace は S3-7 を返します。何か方法はありますか?

4

2 に答える 2

1

これを試してください(preg_replace_callbackを使用)

$code = "A4-7";

function myfunc($matches)
{

  return 'S'.($matches[1]-1).'-'.$matches[2];
}
echo preg_replace_callback("#A(\d)-(\d)#","myfunc",$code);
于 2013-09-02T11:09:04.867 に答える
0

最初に値を抽出し、抽出した値に対して数学演算を実行してから、文字列を再構築して目的を達成する必要があります。

例えば:

<?php
$code = 'A4-7';
preg_match('/A([0-9])\-([0-9])/', $code, $matches);
$new = 'S'.($matches[1]-1).'-'.$matches[2];
?>
于 2013-09-02T11:07:23.687 に答える