3

我有以下代码:

 <?php
        $data="000ffe-fcc9f4 1 000fbe-fccabe";
        $pattern='/([0-9A-F]{6})-([0-9A-F]{6})$/i';
        echo "the pattern we are using is: ".$pattern."<BR>";

        preg_match_all($pattern,$data,$matches, PREG_SET_ORDER );

        print_r($matches[0]);

?>

我不明白为什么它没有找到两个 MAC 地址作为匹配项。

页面上的输出如下所示:

the pattern we are using is: /([0-9A-F]{6})-([0-9A-F]{6})$/i
Array ( [0] => 000fbe-fccabe [1] => 000fbe [2] => fccabe ) 

我期待元素 [0] 将同时包含 000ffe-fcc9f4 和 000fbe-fccabe。你能告诉我我做错了什么吗?

谢谢。

4

1 回答 1

3

它没有找到两者的原因是因为您$的正则表达式末尾有 a ,这意味着它只会匹配字符串末尾的该模式。

尝试更改$pattern/([0-9A-F]{6})-([0-9A-F]{6})/i,应该两者都匹配。

于 2012-08-10T00:38:27.293 回答