PHP正则表达式异常行为

PHP正则表达式异常行为,php,regex,Php,Regex,我开始接触PHP中的正则表达式,并一直坚持使用start 我已经写了以下几块:- $object = "ng_amg_gt-1"; switch ($object) { case preg_match('/^ng_amg_gt-[0-9]+$/', $object): echo 'first'; break; case preg_match('/^ng_amg_gt-_cg-[0-9]+$/', $object): ec

我开始接触PHP中的正则表达式,并一直坚持使用start

我已经写了以下几块:-

$object = "ng_amg_gt-1";

switch ($object)
{
    case preg_match('/^ng_amg_gt-[0-9]+$/', $object):
        echo 'first';    
        break;

    case preg_match('/^ng_amg_gt-_cg-[0-9]+$/', $object):
        echo 'second';
        break;

}
我原以为“ng_amg_gt-1”会匹配preg_match(“/^ng_amg gt-[0-9]+$/”,$object),但有趣的是(另一个原因是)它在第二次中回响

我错过了什么

PS:-这似乎是一个显而易见的问题,但没有取得任何突破,这就是为什么我把它贴在这里

谢谢

我错过了什么?

以下是您错过的内容:

$object = "ng_amg_gt-1";

if(preg_match('/^ng_amg_gt-[0-9]+$/', $object)) {
    echo 'first';
} else if(preg_match('/^ng_amg_gt-_cg-[0-9]+$/', $object)) {
    echo 'second';
}
我错过了什么?

以下是您错过的内容:

$object = "ng_amg_gt-1";

if(preg_match('/^ng_amg_gt-[0-9]+$/', $object)) {
    echo 'first';
} else if(preg_match('/^ng_amg_gt-_cg-[0-9]+$/', $object)) {
    echo 'second';
}

preg_match返回模式匹配的数量,你将其与字符串进行比较,preg_match返回模式匹配的数量,你将其与字符串进行比较,preg_match返回一个整数,你在对字符串进行切换,我甚至不知道这是否有效。只要做一个
if(preg_match(…)
哦,不,我犯了一个错误,抱歉,看看preg_match返回一个int,你在对字符串进行切换,我甚至不知道这是否有效。只要做一个
如果(preg_match(…)
哦,不,我犯了一个错误,道歉看看我为这个错误道歉我为这个错误道歉谢谢你的努力,我从中得到了一个想法谢谢你的努力,我从中得到了一个想法