Web サイトから取得した文字列があります。
文字列の一部が「X2」 2に+1を足したい。
私が得る文字列全体は次のとおりです。
20120815_00_X2
私が欲しいのは、「20120815_00_X13」まで「X2」+1を追加することです
Web サイトから取得した文字列があります。
文字列の一部が「X2」 2に+1を足したい。
私が得る文字列全体は次のとおりです。
20120815_00_X2
私が欲しいのは、「20120815_00_X13」まで「X2」+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"
できるよ :
$string = '20120815_00_X2';
$concat = substr($string, 0, -1);
$num = (integer) substr($string, -1);
$incremented = $concat . ($num + 1);
echo $incremented;
substr() の詳細については、=>ドキュメントを参照してください。
文字列の末尾にある数字を見つけてキャプチャし、最大値をテストして、12
その場合は 1 を追加すると、パターンは次のようになります。
/(\d+)$/ // get all digits at the end
そして式全体:
$new = preg_replace('/(\d+)$/e', "($1 < 13) ? ($1 + 1) : $1", $original);
修飾子を使用しe
て、置換式が php コードとして評価されるようにしました。
CodePadの作業例を参照してください。