Preg_match:选择一个介于3和12之间的数字范围,不包括7、9和11


Preg_match: select a number range between 3 and 12 excluding 7, 9 and 11

我想匹配以下条件,选择一个介于312之间的数字范围,不包括7911,并且前面必须有以下运算符><,然后是可选的=

> < = 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)/"

还可能以^为前缀,以$结尾,以强制执行全字符串匹配。