使用CSV模塊可能是矯枉過正該數據集的末尾匹配,但這裏有一個辦法做到這一點。增加了一個有點矯枉過正分類和計數,以及,爲了好玩:
代碼:
use strict;
use warnings;
use Text::CSV_XS;
my $csv = Text::CSV_XS->new({
allow_whitespace => 1,
});
my @list;
while (my $row = $csv->getline(*DATA)) {
for (@$row) {
push @list, $_ if /^\w{1,4}$/;
}
}
my %count;
for (@list) {
$count{$_}++;
}
for (sort { $count{$b} <=> $count{$a} || $a cmp $b } keys %count) {
printf "%-6s %-3s\n", $_, $count{$_};
}
__DATA__
A
B
some random line messing regexes up
,,
C
AAPL, GOOG, MSFT
AAPL
GE
GE, NVDA, IBM, CRM
X
輸出:
AAPL 2
GE 2
A 1
B 1
C 1
CRM 1
GOOG 1
IBM 1
MSFT 1
NVDA 1
X 1
Y 1
Z 1
來源
2011-08-15 14:56:42
TLP
如何從任何其他文字破譯的象徵? – vol7ron
一個符號可以是1個字符(例如C)或最多4個(例如NSWA) – simbatish
由於我在stema評論中的所有理由,我認爲你應該考慮改變選定的答案。 – vol7ron