可能重复:
How can I split a string into chunks of two characters each in Perl?
我想将一个字符串拆分成一个数组,用2个字符分组:
$input = "DEADBEEF";
@output = split(/(..)/,$input);
这种方法使每个其他元素都为空。
$VAR1 = '';
$VAR2 = 'DE';
$VAR3 = '';
$VAR4 = 'AD';
$VAR5 = '';
$VAR6 = 'BE';
$VAR7 = '';
$VAR8 = 'EF';
如何获得连续数组?
$VAR1 = 'DE';
$VAR2 = 'AD';
$VAR3 = 'BE';
$VAR4 = 'EF';
(...除了获得第一个结果并删除所有其他行...)
答案 0 :(得分:3)
您可以使用以下方法轻松过滤掉空条目
@output = grep { /.+/ } @output ;
编辑: 您可以更轻松地获得相同的东西:
$input = "DEADBEEF";
my @output = ( $input =~ m/.{2}/g );
编辑另一个版本:
$input = "DEADBEEF";
my @output = unpack("(A2)*", $input);
此致
答案 1 :(得分:2)
试试这个:
$input = "DEADBEEF";
@output = ();
while ($input =~ /(.{2})/g) {
push @output, $1;
}