0

Web サイトから取得した文字列があります。

文字列の一部が「X2」 2に+1を足したい。

私が得る文字列全体は次のとおりです。

20120815_00_X2

私が欲しいのは、「20120815_00_X13」まで「X2」+1を追加することです

4

3 に答える 3

1

この解決策は機能します (X の後の数字に関係なく):

function myCustomAdd($string)
{

$original = $string;

$new = explode('_',$original);

$a = end($new);

$b = preg_replace("/[^0-9,.]/", "", $a);

$c = $b + 1;

$letters = preg_replace("/[^a-zA-Z,.]/", '', $a);

$d = $new[0].'_'.$new[1].'_'.$letters.$c;

return $d;

}

var_dump(myCustomAdd("20120815_00_X13"));

出力:

string(15) "20120815_00_X14"
于 2012-08-15T15:26:19.683 に答える
1

できるよ :

$string = '20120815_00_X2';

$concat = substr($string, 0, -1);
$num = (integer) substr($string, -1);

$incremented = $concat . ($num + 1);

echo $incremented;

substr() の詳細については、=>ドキュメントを参照してください。

于 2012-08-15T14:40:58.377 に答える
1

文字列の末尾にある数字を見つけてキャプチャし、最大値をテストして、12その場合は 1 を追加すると、パターンは次のようになります。

/(\d+)$/    // get all digits at the end

そして式全体:

$new = preg_replace('/(\d+)$/e', "($1 < 13) ? ($1 + 1) : $1", $original);

修飾子を使用しeて、置換式が php コードとして評価されるようにしました。

CodePadの作業例を参照してください。

于 2012-08-15T14:41:50.477 に答える