请问用perl怎么统计每一行中某个单词出现的位置?

譬如说,howold**are**you?where**are**youfrom?“are”这个单词在第一行是第三个,第二行是第二个,我想得到的是3howold**are... 譬如说,how old **are** you?
where **are** you from?
“are”这个单词在第一行是第三个,第二行是第二个,我想得到的是
3 how old **are** you?
2 where **are** you from?
展开
百度网友14b59fc63f
2012-05-30 · 超过16用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:34.2万
展开全部
#!/usr/bin/perl -w
use strict;
my @words;
while (<>) {
@words = split;
my $i = 1;
foreach my $word (@words) {
print "$i @words\n",if $word =~ /are/;
$i += 1;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闽有你腐崽福D
2011-04-17 · TA获得超过317个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:94.6万
展开全部
利用正则:
my $line = 'how old are you?';
$line =~ /(.*?)\bare\b/ or die "Can't match\n"; # 匹配are,\b为单词边界;
my $string = $1; # 捕获括号中的内容,也就是are之前的内容;
my $n = $string =~ s/ //g; # 将前面的空格换成空,返回成功个数;
print $n+1 , " $line\n"; # 前面的空格数加1就是are单词的位置;
当然,如果你认为用空格数判断单词个数不严谨,也可以改成带字符边界的正则,这里就不多说了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式