首页 > 解决方案 > 只匹配两次

问题描述

我想准确匹配一个单词两次。输出不应显示所有匹配项。如何使用 perl?

open(a,"<file.txt");
open(c,">>output.txt");
while (my $line = <a>) {
        if($line =~ m/know{2}/) { 
          print $line;
        }
}
close(a);
close(c);

示例:如果 file.txt 有以下几行:

I know Perl.
I know English.
I know French.
I know Dutch.

预期的结果应该是:

I know Perl.
I know English.

标签: perl

解决方案


您似乎在询问如何找到包含know.

为此,您需要跟踪之前找到的行数。

my $count = 0;
while (<>) {
   if (/know/) {
      print;
      last if ++$count == 2;
   }
}

推荐阅读