• ベストアンサー

数値かどうかの判定方法

$aに代入されているものが数値かどうかを判定するにはどのようにしたらよいのでしょうか?

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

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

$a =~ /^[0-9]*$/ 上記の場合、*は「直前のパターンの0回以上の繰り返し」の意味なので、0から9がなくても、つまり$aが空でもマッチしてしまいます。 なので、 $a =~ /^[0-9]+$/ としましょう。 (+は「直前のパターンの1回以上の繰り返し」) また、0-9は\dで表すこともできるので $a =~ /^\d+$/ と書くこともできます。

その他の回答 (2)

  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.2

if ($a =~ /^[0-9]*$/) { print "数値です"; } else { print "数値ではありません"; } すみません、下のは間違いでした。上が正解です。

  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.1

if ($a =~ /[0-9]/) { print "数値です"; } else { print "数値ではありません"; } 上のようにすれば可能です。

関連するQ&A