正規表現
数字をあらわす正規表現を書いてみた。
1 #!/usr/bin/ruby -w 2 3 puts "input number" 5 6 while gets 7 if ~/^-?(\d|[1-9]\d+)(\.\d+)?$/ then 8 puts "number" 9 printf("result=%.3f\n", $_) 10 else 11 puts "not number" 12 end 13 end
01みたいに先頭が0の複数桁の数字をはじく。
小数点は一回だけ。
小数点のあとには絶対数字。
これを書いてて先読み、戻り読みとか忘れていたから復習した。
肯定の戻り読み・・「(?<=..)」 否定の戻り読み・・「(?<!..)」 肯定の先読み・・「(?=..)」 否定の先読み・・「(?!..)」