perl - 将字符串拆分为2个字符的组

时间:2011-05-19 13:17:14

标签: regex perl split text-processing

  

可能重复:
  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';

(...除了获得第一个结果并删除所有其他行...)

2 个答案:

答案 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;
}