Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php preg_匹配编号2000-2999_Php_Preg Match - Fatal编程技术网

php preg_匹配编号2000-2999

php preg_匹配编号2000-2999,php,preg-match,Php,Preg Match,我试图写一个if语句,如果$var等于任何数字2000-2999 inc,它将继续 if ( preg_match( '/^20.*/', $var) ) continue; 这似乎有效,但在20123456或20001-1234-2345等上也会匹配吗 如何将其限制在2000-2999(含)以内 感谢使用regex最简单的方法: if ( preg_match( '/^2[0-9]{3}$/', $var) ) continue; [0-9]匹配任何数字字符{3}说精确匹配它3次。因此它将

我试图写一个if语句,如果$var等于任何数字2000-2999 inc,它将继续

if ( preg_match( '/^20.*/', $var) ) continue;
这似乎有效,但在20123456或20001-1234-2345等上也会匹配吗

如何将其限制在2000-2999(含)以内


感谢使用regex最简单的方法:

if ( preg_match( '/^2[0-9]{3}$/', $var) ) continue;
[0-9]
匹配任何数字字符
{3}
说精确匹配它3次。因此它将匹配
000
001
120
999
,等等<代码>$匹配字符串的结尾


有关更多信息,请参见此。(使用左侧的单元测试确保函数与您要查找的匹配)

使用正则表达式的最简单方法:

if ( preg_match( '/^2[0-9]{3}$/', $var) ) continue;
[0-9]
匹配任何数字字符
{3}
说精确匹配它3次。因此它将匹配
000
001
120
999
,等等<代码>$匹配字符串的结尾


有关更多信息,请参见此。(使用左侧的单元测试确保函数与您要查找的匹配)

为什么通过
preg\u match
? 如果符合以下条件,您可以使用classic

if ($var >= 2000 && $var <= 2999) continue;

如果($var>=2000&&$var为什么要通过
preg\u match
? 如果符合以下条件,您可以使用classic

if ($var >= 2000 && $var <= 2999) continue;

如果($var>=2000&&$var 2100我需要说点别的吗:)这不匹配2999?我错过了2000-2999。我以为是2000-2099。更新了answer@Tom我发布了regex101链接,它有一些单元测试功能,可以向您显示它匹配/不匹配的内容。2100我需要说点别的吗:)这不匹配2999?我错过了2000-2999。我以为是2000年到2099年。更新answer@Tom我发布了regex101链接,它有一些单元测试功能,可以向您显示它匹配/不匹配的内容。我没有想过这样做。几周后阅读就简单多了:)是的,准确地说:-)如果不是通过
preg_match
进行比较的具体原因,最好让代码简单有效且易于阅读。我没有想过这样做。在几周时间内阅读非常简单:)是的,准确地说:-)如果不是通过
preg_match
进行比较的具体原因,最好让代码简单有效且易于阅读。