perlの正規表現、サブルーチンについてです。
やりたいことはサブルーチンに渡された引数が "数字x数字y数字z"(数字は最大3桁) という形式だった時に計算をして値を返し、それ以外のときにはerrorと表示するものです
lang
1sub xyz{ 2if(/^\dx\dy\dz$/){ 3 my $str =~ /(\d+ \d+ \d+)/; 4 my ($x,$y,$z) = $1,$2,$3; 5 my ($res); 6 $res = $x*3+$y*2+$s; 7 return $res; 8 } 9else { 10 print("error!!") 11} 12} 13 print "108x320y85z = ", xyz("108x320y85z"), "\n"; 14 print("1y27y12z = ", xyz("1y27y12z"), "\n"); 15 print("3b0dx51y43z = ", xyz("3b0dh51m43s"), "\n");
###結果
lang
1error!!108x320y85z = 1 2error!!1y27y12z = 1 3error!!3b0dx51y43z = 1
###本当に得たい結果
lang
1 108x320ym85z = 1049 2 1y27y12z = error!! 3 3b0dx51y43z = error !!
どなたか詳しい方がいらっしゃったらよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/26 15:52