PHP preg_match不匹配表达式模式


PHP preg_match not matching with an expression to pattern

我有这个php代码

if(preg_match('/BUT[a-zA-Z0-9]+TN/', $id))
{
echo "Match found";
}

对于$id as 'BUTEqHLHxJSRr9DJZSMTN',它不工作/匹配。但我已经测试了正则表达式模式在线与id和它的工作。请帮我找出问题所在。

谢谢

您缺少if语句的右括号。

if (preg_match('/BUT[a-zA-Z0-9]+TN/', $id))
                                          ^

EDIT:你的代码和正则表达式可以工作,参见工作演示。也许你在代码的其他地方有另一个问题,或者你的变量$id可能包含不同的东西。

可以看到,这返回一个匹配。

$id = 'BUTEqHLHxJSRr9DJZSMTN';
preg_match('/BUT[a-zA-Z0-9]+TN/', $id, $match);
echo $match[0]; //=> "BUTEqHLHxJSRr9DJZSMTN"

请注意,preg_match返回整数,而不是布尔值。正确的if应该像这样:

if (preg_match('/BUT[a-zA-Z0-9]+TN/', $id) > 0)
  {
    echo "Match found";
  }