PHP正则表达式奇怪的行为

时间:2012-05-25 18:24:18

标签: php regex

我开始在PHP中使用正则表达式,并坚持使用。

我写了以下块: -

$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)匹配,但有趣的是(令人讨厌的)它回显第二。 / p>

我缺少什么?

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

由于

2 个答案:

答案 0 :(得分:2)

  

我缺少什么?

这是你错过的:

$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';
}

答案 1 :(得分:1)

preg_match返回模式匹配的数量,并将其与字符串

进行比较