0

私は一日中PHPコードを読んでいますが、単純な質問であると信じていることに対する答えが見つからないようです。

文字列でいっぱいの配列があり、文字列の最初の文字が数字であるかどうかを確認したいので、それを使って何かをしたい、例えば:

if substr($stringArray[$i],0,1) == regexsomething[0-9]) { do stuff }

私はこれをすべて間違っていますか?

確かに、最初に一致するように正規表現を [^0-9] に設定できますが、PHP preg_match は私を大いに混乱させます。

どんなアドバイスも素晴らしいでしょう。

ありがとう

4

2 に答える 2

4

括弧の外側^は「開始」を意味しますが、 の直後[は「このクラス全体を反転」を意味します。/[^0-9]/数字以外を含むものすべてに一致します。1 桁に一致する正規表現は次のようになります。

/^[0-9]$/

ただし、PHP には既にこのための関数があります。is_numeric()

if ( is_numeric( substr( $stringArray[$i],0,1 ) ) ) { do stuff }

正規表現ルートを使用する場合は、最初の文字を取得する必要はありません。数字で始まるものすべてに一致する正規表現は次のようになります。

if ( preg_match( '/^[0-9]/', $stringArray[$i] ) ) { do stuff }
于 2011-02-14T13:23:35.637 に答える
0

文字列が数値であることを確認したい場合は、次のis_numericように使用できます。

if(is_numeric($string))
{
    //Do Something
}

1桁であることを確認したい場合は、小なり演算子7を使用できます<

if(is_numeric($string) && $string < 10)
{
    //Do Something
}
于 2011-02-14T13:55:16.990 に答える