T001、T1、T012、T150 ---- T999 などの文字列に一致する正規表現が必要です。
私はこのように作成しました : [tT][0-9]?[0-9]?[0-9]
、しかし明らかに、T0、T00、および T000 にも一致しますが、これは望ましくありません。
前の 1 つまたは 2 つの文字がゼロの場合、最後の文字を強制的に 1 にするにはどうすればよいですか?
私はそのために正規表現を使用しません。
<?php
function tValue($str) {
if (intval(substr($str, 1)) !== 0) {
// T value is greater than 0
return $str;
} else {
// convert T<any number of 0> to T<any number-1 of 0>1
return $str[ (strlen($str) - 1) ] = '1';
}
}
// output: T150
echo tValue('T150'), PHP_EOL;
// output: T00001
echo tValue('T00000'), PHP_EOL;
// output: T1
echo tValue('T0'), PHP_EOL;
// output: T555
echo tValue('T555'), PHP_EOL;
コードパッド: http://codepad.org/hqZpo8K9