使用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