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

sta*_*een 1 php regex preg-match-all

我想验证一个数字字符串,该字符串必须只包含400550之间的数字.

$x = "401";  // valid 
$x = "551";  // invalid 
Run Code Online (Sandbox Code Playgroud)

我想只匹配400550之间的数字.

我尝试了以下模式:

if(preg_match_all("/[400-550]+/",$x)); 
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

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

Wik*_*żew 8

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

\b(?:4[0-9]{2}|5[0-4][0-9]|550)\b
Run Code Online (Sandbox Code Playgroud)

演示.由于使用了\b边界,它也适用于较大的文本.在整个字符串的情况下,使用^$周围而不是\b.


Riz*_*123 6

只需结合in_array()使用range(),如下所示:

if(!in_array($x, range(400, 550)))
   echo "in ";
echo "valid";
Run Code Online (Sandbox Code Playgroud)

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

if($x >= 400 && $x <= 550)
Run Code Online (Sandbox Code Playgroud)