我有以下代码:
<?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]);
&GT;
我不明白为什么它没有找到两个匹配的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。 你能告诉我我做错了什么吗?
感谢。
答案 0 :(得分:3)
它找不到两者的原因是因为你的正则表达式末尾有一个$
,这意味着它只会匹配字符串末尾的那个模式。
尝试将$pattern
更改为/([0-9A-F]{6})-([0-9A-F]{6})/i
,这两者都应该匹配。