如何在perl中分隔数组?

时间:2014-03-27 03:33:32

标签: perl

我有一个类似于:

的数组
A B C D E F G H A1 B1 C1 D1 E1 F1 
G1 H1

我想知道如何拆分它以便在它击中A1时打印一条新线。 请注意,这实际上并不是它的样子,而是一个混合了大量数字和字母的复杂表格(如果它以任何方式重要)。

1 个答案:

答案 0 :(得分:2)

假设您在一行$line中包含所有字母+数字。所以:

my $line = 'A B C D E F G H A1 B1 C1 D1 E1 F1 A2 B2';
my ($curr_n, $last_n) = (0, 0);
foreach my $el (split(/ /, $line)) {
    $curr_n = $el =~ /\w+(\d+)/ ? $1 : 0;
    if ($curr_n != $last_n) {
        $last_n = $curr_n;
        print "\n";
    }
    print $el;
}

它给出了以下输出:

ABCDEFGH
A1B1C1D1E1F1
A2B2