请问用perl怎么统计每一行中某个单词出现的位置?
譬如说,how old **are** you?
where **are** you from?
“are”这个单词在第一行是第三个,第二行是第二个,我想得到的是
3 how old **are** you?
2 where **are** you from?
请问用perl怎么统计每一行中某个单词出现的位置?
答案:1 悬赏:40 手机版
解决时间 2021-07-26 01:20
- 提问者网友:沉默的哀伤
- 2021-07-25 15:13
最佳答案
- 五星知识达人网友:荒野風
- 2021-07-25 15:49
利用正则:
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单词的位置;
当然,如果你认为用空格数判断单词个数不严谨,也可以改成带字符边界的正则,这里就不多说了.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯