- 締切済み
複数の単語のいずれも含まない場合の条件文
複数の単語を設定して、そのどれも含んでいない場合にエラーを 出したいのですが(例えば「one」「two」「three」という単語の場合) ○の部分をどのように記述すればいいでしょうか。一行で書けますか? if ($test =!~ /○/i) { &error("エラー"); }
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.4
素直に #1 でいいと思うけど, ひねりたいなら grep { $test =~ /$_/i } qw(one two three) or &error("エラー");
- fumufumu_2006
- ベストアンサー率66% (163/245)
回答No.3
前の回答は質問の意味を間違えていました。 すみません。 ただ・・・ phone なんかがoneにマッチして良いのか悪いのかで、処理が変わるんじゃ・・・
- fumufumu_2006
- ベストアンサー率66% (163/245)
回答No.2
my %word; $word{one}=''; $word{two}=''; $word{three}=''; if not exists $word{$test}{&error('エラー')} では? 単語増やすの楽ですよ・・・
- darter
- ベストアンサー率48% (12/25)
回答No.1
if ($test !~ /one|two|three/i) { &error("エラー"); } でいいと思います。 あと、「一致しない」場合は、 =!~ ではなく !~ ですね。
お礼
回答ありがとうございます。 皆さんの意見を参考に変えてみたら機能しました。 なぜか書き込んだのに反映されてなかったので返信が遅れました。すみません。