我刚刚编写了一个小脚本来从交换机中提取数百个MAC地址进行比较,但它们的格式为“0025.9073.3014”,而不是标准的“00:25:90:73:30:14”.
我很难理解如何转换它,我能想出的最好的东西是将它们分解成“.”,然后将它们分成两部分,然后用“:”分隔符重新加入所有部分.
我对hacky方法没问题,但这让我很烦,因为这是一种非常糟糕的方法.有没有办法更好地执行此操作?
解决方法:
str_replace和preg_replace的组合:
<code>$str = preg_replace('~..(?!$)~', ' :', str_replace(".", "", $str));
</code>
首先剥离了.然后添加:之后..两个任何字符(?!$)如果不在最后.
或者使用capture group并在没有str_replace的情况下执行:
<code>$str = preg_replace('~(..)(?!$).?~', '1:', $str);
</code>
性能没有太大差异.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!