如何使用正则表达式匹配400到550之间的数字?

时间:2015-05-05 14:39:28

标签: php regex preg-match-all

我想验证一个数字字符串,该字符串只能包含 400 550 的数字。

$x = "401";  // valid 
$x = "551";  // invalid 

我想只匹配 400 550 之间的数字。

我尝试了以下模式:

if(preg_match_all("/[400-550]+/",$x)); 

但它没有用。

匹配数字400-550的正则表达式是什么?

7 个答案:

答案 0 :(得分:7)

验证此范围的正则表达方式:

\b(?:4[0-9]{2}|5[0-4][0-9]|550)\b

demo。由于使用\b边界,它也适用于较大的文本。如果是整个字符串,请使用^$而不是\b

答案 1 :(得分:6)

只需将in_array()range()合并,就像这样:

if(!in_array($x, range(400, 550)))
   echo "in ";
echo "valid";

或者只是做一个简单的if语句,例如

if($x >= 400 && $x <= 550)

答案 2 :(得分:4)

应该工作:

^((4\d\d)|(5([0-4]\d|50)))$

答案 3 :(得分:3)

试试这个:

my-release-key.keystore

测试:https://regex101.com/r/zU4vX8/2

答案 4 :(得分:2)

试试/(([4][0-9]{2,2})|([5][0-4][0-9])|(550))/ (我还没有测试过它)。我不知道是否有更简单的方法。

答案 5 :(得分:1)

除非您有理由使用正则表达式,否则只需比较数字。

if ($x <= 550 && $x >= 400)

它比正则表达式或使用数组范围更快更容易阅读。

答案 6 :(得分:1)

php代码:

            @Override
            public boolean onKeyDown(int keyCode, KeyEvent event) {
                mp1.stop();
                return super.onKeyDown(keyCode, event);
            }