0
我想知道段落中有多少单词,然后找到每个单词出现次数。 我可以做到这一点,但是有没有其他方法可以只使用正则表达式?捕获一行中的所有单词并使用Perl正则表达式计算它们的出现
my $string = "John is a good boy. John goes to school with his brother Johnny. When John is hungry, he eats his tiffin.";
my @list =();
while($string =~ /(\b\w+\b)/gi)
{
push(@list, $1);
}
my %counts;
for (@list) {
$counts{$_}++;
}
print "$#list \n";
foreach my $keys (keys %counts) {
print "$keys = $counts{$keys}\n";
}
输出应该是
20
brother = 1
a = 1
goes = 1
is = 2
good = 1
to = 1
tiffin = 1
When = 1
boy = 1
his = 2
school = 1
Johnny = 1
he = 1
eats = 1
John = 3
with = 1
hungry = 1
你已经在使用正则表达式吗? –
不,我的意思是使用正则表达式来计算出现次数。我正在使用list和hash。 –
你想要一个甚至不使用散列的解决方案吗? –