- 締切済み
テキストファイル内を行単位でAND検索し表示したい
perl初心者です。 フォームより受け取った複数の文字列をキーとして配列[@keywords]に格納し、 テキストファイル内を行単位でAND検索し結果を表示したいです。 OR検索は 検索対象文字が"a","b","c"の場合、$key = a|b|c と生成してうまく表示出来ているようなのですが、 AND検索をする場合はどの様に$keyを生成すればよいか教えて頂けないでしょうか。 よろしくお願い致します。 my $key = ""; if($option eq "or"){ #OR検索key生成 for(my $i = 0; $i < @keywords; $i++){ if($i != 0){$key = $key . "|";} $key = $key . @keywords[$i]; } else { #AND検索key生成 #ここの部分がどの様に書いたらいいかわかりません。 } #検索開始 my $result = ""; if (open(F, $SEARCH_FILE)) { if ($key !~ /^\s*$/) { while (<F>) { if (s|($key)|<font color="red">$1</font>|gi) { $result .= $_; } } #検索文字が見つからない時の表示 if ($result eq ""){ $result = "NOT FOUND" } } print "<pre>$result</pre>\n"; close(F); } else { #検索対象となるファイルが見つからない時のエラー表示 print "ERROR: Can't open '$SEARCH_FILE'\n"; }
お礼
お忙しい中、度々ご回答頂き感謝致します。 頂いたソースを参考書片手に勉強します。 今回の件は、SE-1さん、BLUEPIXYさんのおかげで解決する事が出来ました。 本当にありがとうございました。