如何分割字符串,我的意思是将1234567890转换为12:34:56:78:90

mad*_*per 3 regex string macos perl

我需要将一些Mac数字(00163e2fbab7)转换为Mac字符串.(带":")

是否有一些很好的方法将Mac号分成组?我指的是(00),(16),(3e),(2f),(ba),(b7)

我知道,有一个where功能,List::Gen但我无法在我的主机中安装此软件包.那么,我该怎么做呢?

非常感谢你!

Gar*_*eth 8

如果您知道自己正在处理MAC地址,请使用专门为他们设计的库,例如 Net::MAC


fle*_*esk 6

my $mac = "00163e2fbab7";
$mac =~ s/..(?!$)\K/:/g;
print "$mac\n";
Run Code Online (Sandbox Code Playgroud)

输出:

00:16:3e:2f:ba:b7
Run Code Online (Sandbox Code Playgroud)

如果您没有Perl 5.10,您可以使用:

$mac =~ s/(..)(?!$)/$1:/g;
Run Code Online (Sandbox Code Playgroud)


Bor*_*din 6

只需将字符串拆分为两个字符的块,然后join将它们重新组合在一起即可.像这样

my $mac = "00163e2fbab7";
print join ':', $mac =~ /../g;
Run Code Online (Sandbox Code Playgroud)

OUTPUT

00:16:3e:2f:ba:b7
Run Code Online (Sandbox Code Playgroud)