如何使用正则表达式在文件中搜索多个单词

时间:2016-10-12 06:12:21

标签: perl

我需要一些帮助,我是Perl的新手。例如,如果名为out.txt的文件包含以下数据:

Apple Banana potato
Ashok is a boy
Apple is good 

三个不同行中的所有三个句子我需要搜索文件中appleAshok的第一个出现并打印该行中的第三个单词,即“potato”,“ a“。如果找不到单词,也会打印0。我怎样才能做到这一点?请帮助:) TIA

1 个答案:

答案 0 :(得分:0)

use strict;

my %uniquekey=();
open (FH, "out.txt");
while (<FH>)
{
    my $line=$_;
    if($line=~m/([\w]+)\s([\w]+)\s([\w]+).*$/i || $line=~m/([\w]+)\s([\w]+).*$/i)
    {
        my $first=$1;
        my $third=$3;

        if($third eq ""){$third=0}
        if(!exists($uniquekey{$first})){
            $uniquekey{$first}=$first;
            print "$first $third\n";
        }
        elsif($third ne "")
        {
            print "$third\n";
        }

    }
}
close FH;