Yuguiといいます。

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

パターン /0[bB][01]+/ が、0b09の0b0の部分にマッチしているのでifの条件節
が成立しています。
文字列全体がパターンにマッチすることを意図していると思うので、それならば
\A0[bB][01]+\z です。


それから、私ならこう書きますかねぇ。

$stdin.each_line do |line|
  case line.strip
  when /\A0b[01]+\z/i
    puts "2進"
  when 'q'
    puts "ばいばい〜"
    break
  end
end

文字列がqではないが2進でもない場合は何もしなくて良いのですか?

-- 
Yugui <yugui / yugui.jp>
http://yugui.jp
私は私をDumpする