我想匹配以下条件,选择一个介于3
和12
之间的数字范围,不包括7
、9
和11
,并且前面必须有以下运算符>
或<
,然后是可选的=
。
即> < = 3,4,5,6,8,10,11,12
,因此以下匹配为真:有或没有空格> = 3
、< = 12
、> 2
、< 13
为假< = 3
、> = 12
、> > 4
、= =
、= > 5
。我已经尝试了下面的代码,它匹配上面的所有数字和字符,但当我想限制>
、<
、=
等的一次出现时,我遇到了困难,所以>>
将作为匹配返回,我尝试了/>{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)/"
还可能以^
为前缀,以$
结尾,以强制执行全字符串匹配。