- 締切済み
perlの条件分岐について
条件分岐を使い、長いperlを簡単にまとめたいと思っています。抜粋したperlを以下にのせましたがYES/NOがずっと続いていて、メンテナンスに困っています。 どうかアドバイスをお願いします。 ・データのかたち %%%%%%%%%345 YES%%%%%%%%%%%%%%%%%%%%%%%%% ver 3445675585950 data 111111111111 345 777good %%%%%%%%%380 NO%%%%%%%%%%%%%%%%%%%%%%%%%% big 2910028717721 q qtyuqqqqqqqqq ppm 3.9999999999 380 NO 222down ・現在のperlの抜粋 #345がYESのとき if($_ =~ /\s+345+\s+(-?[\d.]+)/){ print OUT "\n345,$1,YES"; } #345がNOのとき if($_ =~ /\s+345+\s+NO+\s+(-?[\d.]+)/){ print OUT "\n345,$1,NO"; } #380がYESのとき if($_ =~ /\s+380+\s+(-?[\d.]+)/){ print OUT "\n380,$1,YES"; } #380がNOのとき if($_ =~ /\s+380+\s+NO+\s+(-?[\d.]+)/){ print OUT "\n380,$1,NO"; }
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- kumoz
- ベストアンサー率64% (120/185)
回答No.7
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.6
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.5
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.4
- ORUKA1951
- ベストアンサー率45% (5062/11036)
回答No.3
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
- ORUKA1951
- ベストアンサー率45% (5062/11036)
回答No.1
補足
例によってこのデータ例を見てもどこをどのように取り出したいのかよくわからないのですが、 345 777good と 380 NO 222down だけ見ればいいのでしょうか? でも345の方ってYESでもNOでもなく goodってあるんですけど。 → 出力したいのはgame数「345」「380」とそのgame数の判定結果「YES」「NO」と その時の詳細結果「777good」「999good」「222down」です。 また、最初に提示したデータに誤りがあります。345や380の詳細結果は複数あります。 イメージは 345,YES,777(goodは削除) 345,YES,999(goodは削除) 345,YES,000(goodは削除) 380,NO,222(downは削除) 380,YES,111(upは削除) です。 %%%%%%%%%345 YES%%%%%%%%%%%%%%%%%%%%%%%%%→345固定,YES可変 ver 3445675585950 →可変 data 111111111111 →可変 345 777good →345固定,777good可変 345 999good →345固定,999good可変 345 000good →345固定,000good可変 %%%%%%%%%380 NO%%%%%%%%%%%%%%%%%%%%%%%%%%→345固定,NO可変 big 2910028717721 →可変 q qtyuqqqqqqqqq →可変 ppm 3.9999999999 →可変 380 NO 222down →380固定,222down可変,判定がNOときのみgame数と詳細データの間にNOが入る 380 111up →380固定,111up可変 あと前回から気になってたんですが > (-?[\d.]+) 1.23.456.78..9 みたいなのにもマッチしちゃいますよ? → 基本そのような数字が結果として出力されないのですが、よりよい記述がありましたら お教えください。 以上、よろしくお願いします