【发布时间】:2011-05-29 23:00:49
【问题描述】:
我正在尝试计算特定单词在文本文件中出现的次数。文本文件作为 perl 程序的程序参数给出。
while($text = <>)
{
@words = split (/\W*\s+\W*/, $text);
@words = grep (/^[a-zA-Z\-]+$/, @words);
foreach $word (@words)
{
$wordCount{$word}++;
}
}
我对这几行不是很清楚-
@words = split (/\W*\s+\W*/, $text);
@words = grep (/^[a-zA-Z\-]+$/, @words);
我知道split 会将字符串拆分为数组变量,但如何拆分?是否如非言词?我不明白 split 函数中使用的正则表达式。
grep 做了什么,我也不清楚它的正则表达式。
附:当我检查这个时,代码似乎有一个错误,如果我输入一个文本文件,其文本为 -
快速的棕色狐狸跳过 懒狗 dog.rose 是棕色,紫色 跳过狐狸。
它只计算了fox和dog这两个词,这是不正确的。
这里有什么问题?
【问题讨论】: