[ruby-list:45537] 正規表現:2進数の認識

From: 上間 健 <tntn@...>
Date: 2008-10-06 11:07:41 UTC
List: ruby-list #45537
こんにちは、上間です。

基数変換スクリプトを作り始めたばかりです。

2進数の入力で
たとえば、
0b1010 が入力できて、0b09  は、はじくようにしたいのですが、、
しかし、0b09 の入力を通してしまいます。

テストスクリプトの正規表現が間違っているかもしれません。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーテストスクリプト
#!/usr/bin/env ruby

#
#  メイン
#
$re=Regexp.new('(0[bB][01]+)|(q)')
while true
   __s = gets.strip!
   __m=$re.match(__s)
   if    __m[1]
     puts "2進"
   else  __m[2]
     puts "ばいばい〜"
     exit(0)
   end
end
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーテストスクリプト
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー実行画面
$ ./kisuu-henkan.rb
0b01
2進
0b10
2進
0b09
2進
q
ばいばい〜
$
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー実行画面
0b90 はエラーになります。

2進数だけ受け付けるようにするには、正規表現をどうしたらいいでしょうか?



ゆたしくうぬげーさびら(よろしくお願いいたします。)


In This Thread

Prev Next