php – 转换MAC地址格式
作者:互联网
我刚刚编写了一个小脚本来从交换机中提取数百个MAC地址进行比较,但它们的格式为“0025.9073.3014”,而不是标准的“00:25:90:73:30:14”.
我很难理解如何转换它,我能想出的最好的东西是将它们分解成“.”,然后将它们分成两部分,然后用“:”分隔符重新加入所有部分.
我对hacky方法没问题,但这让我很烦,因为这是一种非常糟糕的方法.有没有办法更好地执行此操作?
解决方法:
str_replace和preg_replace的组合:
$str = preg_replace('~..(?!$)~', '\0:', str_replace(".", "", $str));
首先剥离了.然后添加:之后..两个任何字符(?!$)如果不在最后.
或者使用capture group并在没有str_replace的情况下执行:
$str = preg_replace('~(..)(?!$)\.?~', '\1:', $str);
性能没有太大差异.
标签:mac-address,php,regex,formatting 来源: https://codeday.me/bug/20190728/1561088.html