perl-将字符串分成2个字符的组

SF.*_*SF. 5 regex perl text-processing split

可能重复:
如何在Perl中将字符串分成两个字符组成的块?

我想将一个字符串拆分成一个数组,并按2个字符组成部分:

  $input = "DEADBEEF";
  @output = split(/(..)/,$input);
Run Code Online (Sandbox Code Playgroud)

这种方法使其他所有元素都为空。

  $VAR1 = '';
  $VAR2 = 'DE';
  $VAR3 = '';
  $VAR4 = 'AD';
  $VAR5 = '';
  $VAR6 = 'BE';
  $VAR7 = '';
  $VAR8 = 'EF';
Run Code Online (Sandbox Code Playgroud)

如何获得一个连续的数组?

  $VAR1 = 'DE';
  $VAR2 = 'AD';
  $VAR3 = 'BE';
  $VAR4 = 'EF';
Run Code Online (Sandbox Code Playgroud)

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

Tud*_*tin 3

您可以使用以下方法轻松过滤掉空条目:

@output = grep { /.+/ } @output ;
Run Code Online (Sandbox Code Playgroud)

编辑:您可以更轻松地获得相同的东西:

$input = "DEADBEEF";
my @output = ( $input =~ m/.{2}/g );
Run Code Online (Sandbox Code Playgroud)

编辑2另一个版本:

$input = "DEADBEEF";
my @output = unpack("(A2)*", $input);
Run Code Online (Sandbox Code Playgroud)

问候

  • “a2”,而不是“A2”。后者会去除尾随空白,这充其量是多余的。 (3认同)