2016-10-12 3 views
-2

少し助けが必要です。私はPerlを初めて使い慣れています。私は、ファイルにappleAshokの最初の発生を検索し、その行の第三の単語を印刷する必要がある三つの異なるラインで3つのすべての文章は正規表現を使用してファイル内の複数の単語を検索する方法

Apple Banana potato 
Ashok is a boy 
Apple is good 

:以下のデータが含まれていout.txtという名前のファイルに例えばもしすなわち「potato」、「a」である。また、単語が見つからない場合は0も印刷します。これどうやってするの?助けてください:) TIA

+0

何を試しましたか?どこで立ち往生しましたか?あなたはどんな問題に直面していますか? –

+0

私はuが 'はperldoc perlretut'を読み取ることにより、サンプルコード –

+2

スタートを書くことができれば参考になる適切な正規表現を使用する方法がわからないとした後、それは、デューデリジェンスを行ってた後に未解決のまま任意の質問をすること自由に感じ、と後私たちに文脈を提供するために、できるだけ多くのコードを書いています。私はここに私のコードを投稿することができません – DavidO

答えて

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; 
+0

んを検索しない...と印刷するべきではありませんその行の2番目の単語..ファイル内の単語が見つからない場合(行ではない場合)print 0 –

+0

に動作していない –

+0

ファイルからの読み取りのみですが、whileループで行が取得されています。 perlファイルを実行するのと同じパスにファイルを置きます。 – Magesh04

関連する問題