Preg_match: select 3 到 12 之间的数字,不包括 7、9 和 11
Preg_match: select a number range between 3 and 12 excluding 7, 9 and 11
我要匹配以下条件,select一个介于3
和12
之间的数字,不包括7
、9
和[=17] =] 并且前面必须有以下运算符 >
或 <
,然后是可选的 =
.
即 > < = 3,4,5,6,8,10,11,12
因此以下匹配为真:有或没有空格 > = 3
、< = 12
、> 2
、< 13
false < = 3
, > = 12
, > > 4
, = =
, = > 5
。我已经尝试了以下与上面所有数字和字符匹配的代码,但是当我想限制 >
<
=
等一次出现时我被卡住了所以 >>
将 return 作为匹配项,我已经尝试 />{1}
但这不起作用。我是正则表达式的新手,先谢谢你了。
$var = '>=12';
if (preg_match("/>|<|=|[3-6]|8|10|12/", $var)) {
echo "A match was found." . $var;
return true;
} else {
echo "A match was not found." . $var;
return false;
}
您需要将组括在括号中,并且仅在组内使用 |
分隔符:
"/(>|<)=?([3-6]|8|10|12)/"
也可能以 ^
为前缀并以 $
结尾以强制执行完整的字符串匹配。
我要匹配以下条件,select一个介于3
和12
之间的数字,不包括7
、9
和[=17] =] 并且前面必须有以下运算符 >
或 <
,然后是可选的 =
.
即 > < = 3,4,5,6,8,10,11,12
因此以下匹配为真:有或没有空格 > = 3
、< = 12
、> 2
、< 13
false < = 3
, > = 12
, > > 4
, = =
, = > 5
。我已经尝试了以下与上面所有数字和字符匹配的代码,但是当我想限制 >
<
=
等一次出现时我被卡住了所以 >>
将 return 作为匹配项,我已经尝试 />{1}
但这不起作用。我是正则表达式的新手,先谢谢你了。
$var = '>=12';
if (preg_match("/>|<|=|[3-6]|8|10|12/", $var)) {
echo "A match was found." . $var;
return true;
} else {
echo "A match was not found." . $var;
return false;
}
您需要将组括在括号中,并且仅在组内使用 |
分隔符:
"/(>|<)=?([3-6]|8|10|12)/"
也可能以 ^
为前缀并以 $
结尾以强制执行完整的字符串匹配。