我有以下代码:
<?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。
你能告诉我我做错了什么吗?
谢谢。
最佳答案
它没有找到两者的原因是因为你的正则表达式末尾有一个 $
这意味着它只会匹配字符串末尾的模式。
尝试将 $pattern
更改为 /([0-9A-F]{6})-([0-9A-F]{6})/i
并且应该匹配两者。
关于php - 新手php正则表达式问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11893947/