$ varが2000〜2999のいずれかの数字に等しい場合に続くifステートメントを記述しようとしています。php preg_match numbers 2000〜2999
if (preg_match('/^20.*/', $var)) continue;
これはうまくいくようですが、2または20001-1234-2345などにも一致しますか?
どのように私は2000-2999に制限しますか?正規表現と
おかげ
$ varが2000〜2999のいずれかの数字に等しい場合に続くifステートメントを記述しようとしています。php preg_match numbers 2000〜2999
if (preg_match('/^20.*/', $var)) continue;
これはうまくいくようですが、2または20001-1234-2345などにも一致しますか?
どのように私は2000-2999に制限しますか?正規表現と
おかげ
最も簡単な方法:
if (preg_match('/^2[0-9]{3}$/', $var)) continue;
[0-9]
任意の数字の文字に一致します。 {3}
は正確に3回マッチします。したがって、000
、001
、120
、999
などと一致します。$
は、文字列の最後に一致します。
詳細については、regex101 linkを参照してください。 (左の単体テストを使用して、機能が探しているものと一致していることを確認してください)
なぜpreg_match
経由ですか? あなたは使用することができます古典的なif
:
if ($var >= 2000 && $var <= 2999) continue;
そういうことは考えていませんでした。数週間で読み直すのはずっと簡単です:) – Tom
はい、まさに:-) 'preg_match'で比較する具体的な理由がないのであれば、コードを効果的かつ簡単に読むことができます。 –
2100は、私が何か他のもの:) – Rizier123
この文句を言わない試合2999を言う必要があるのですか? – sietse85
私は2000-2999を逃しました。私はそれが2000年から2099年だと思った。更新された答え – FrankerZ