1

T001、T1、T012、T150 ---- T999 などの文字列に一致する正規表現が必要です。

私はこのように作成しました : [tT][0-9]?[0-9]?[0-9]、しかし明らかに、T0、T00、および T000 にも一致しますが、これは望ましくありません。

前の 1 つまたは 2 つの文字がゼロの場合、最後の文字を強制的に 1 にするにはどうすればよいですか?

4

2 に答える 2

3

私はそのために正規表現を使用しません。

<?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

于 2013-08-14T09:07:21.803 に答える