2011-05-19 53 views
4

可能重複:
How can I split a string into chunks of two characters each in Perl?perl的 - 分裂串入2-字符組

我想通過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

謝謝你,埃德 - 可能這是正確的解決方案,您可以隨時關閉的問題。 – 2011-05-19 13:30:46

+0

我在鏈接的線程中爲你添加了一個答案。 – ikegami 2011-05-19 16:30:02

回答

3

您可以輕鬆地過濾掉空條目具有:

@output = grep { /.+/ } @output ; 

編輯: 可以得到同樣的事情更容易:

$input = "DEADBEEF"; 
my @output = ($input =~ m/.{2}/g); 

編輯2另一個版本:

$input = "DEADBEEF"; 
my @output = unpack("(A2)*", $input); 

問候

+2

'a2',而不是'A2'。後者剝去了空白,這在多餘情況下是多餘的。 – ikegami 2011-05-19 16:30:51

2

試試這個:

$input = "DEADBEEF"; 
@output =(); 

while ($input =~ /(.{2})/g) { 
    push @output, $1; 
} 
+0

添加/ s標誌,或換行符將跳過(以及它們之前的奇數字符) – ysth 2011-05-19 14:21:30