PHP REGEX在REGEX101工作时不起作用



这是我的代码。我试图将此字符串与我的正则匹配,但每次在我的本地XAMPP服务器和专用服务器上都会失败。令人惊讶的是,当我在Regex101上进行测试时,它以某种方式工作。为什么??

<?php
$str = "80 ×× ×× ×× ×× ××
×× ×× 91 94 ×× ××
";
echo strlen($str);
if (preg_match("/[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}/", $str)) {
    echo "ok";
}else{
    echo "no mto";
}
?>

您需要使用u修饰符来启用UNICODE模式的正则表达式,因为主题中的×字符在ASCII字符范围内 notem not 。注意图案定义中的尾随/u

<?php
$str = <<<EOT
80 ×× ×× ×× ×× ××
×× ×× 91 94 ×× ××
EOT;
if (preg_match("/[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}[ []().]{1,3}[0-9*+=-#@×?]{2,3}/u", $str)) {
    echo "ok";
} else {
    echo "no mto";
}

显然输出是:

ok

相关内容

最新更新