超☆数の合計もとめるシステムっていうのつくったんだけど。

入力された文字が数値かどうかしらべたんよ。

そこでさ。

しらべるための魔法のプログラムをかいて。

でもよくわかってなかったのさ。



そしたら!

通りすがりのruby好きさんに教えてもらっちゃいました!

正規表現(せいきひょうげん)。



超☆数の合計もとめるシステムから。

文字の入力部分をぬきだしたプログラムね。

puts "数値を入力してねー"

number = nil

while true
number = gets.chomp
if number =~ /^[0-9]+$/
break
else
puts "数値を入力してよ!"
end
end

puts "入力されたのは#{number}だよー"

ここ。

if number =~ /^[0-9]+$/

numberが数値だとtrueになる。

//ではさまれたとこが正規表現ね。
「パターンを簡略的に表現したような物」だって。

=~はパターンに一致したら、それが何文字目かを教えてくれて。
一致しなかったらfalseになるんだって。


それでね。

正規表現のなかみ。

^は文字列のさいしょ。
[0-9]は0から9のどれか一文字。
+は直前のパターンを1回以上くりかえすこと。
$は文字列のおわり。

つまり。

文字列のさいしょからさいごまでで。
0から9のどれかが1回以上くりかえされてるパターン。

つまり。

数値!



魔法のプログラムがわかっちゃったよ。

通りすがりのruby好きさん。
ありがとうございます!!!!!!!!!!


でも正規表現は奥が深いみたい。

使いこなすと強力らしいから。

勉強してみる。


にほんブログ村 IT技術ブログへにほんブログ村 IT技術ブログ プログラム・プログラマへ
アップ葵のランキングははてなマーク応援してねビックリマーク