• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列検索のAND条件を引数にしたい)

文字列検索のAND条件を引数にしたい

このQ&Aのポイント
  • Perl初心者です。指定したファイルの中から指定した文字列の入っている行を取得したい
  • Perlの処理を使って$ARGV[1]に指定した文字列のAND条件の行を抽出したいですが、上手く動作しません
  • 正規表現の文字列を引数で受け取るPerlの処理を組み込む方法について教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

正規表現を文字列で与えることはもちろん可能ですが, 「aaa, bbb, ccc を全て含む」というのは (書けないことはないけど面倒なので) やめた方がいいと思います. 素直に && でつなぐ (あるいはもっとひねる) 方が安全です. ひねった方向でいくと, 例えば $ARGV[1] が "aaa/bbb/ccc" だとして my @patterns = map { qr/$_/ } split(/\//, $ARGV[1]); open(FL, $ARGV[0]); while (my $line = <FL>) { print $line unless grep { $line !~ $_ } @patterns; } close(FL); でいける... はずです. 試してないけど.

hatsuzo
質問者

お礼

早々のアドバイス有難うございました。 一発で動作しました。 Perlはなかなか正規表現とか特殊な文字の扱いが覚えられずに手こずっています。 大変助かりました。 感謝いたします。