From: Robert Klemme Date: 2009-01-29T21:55:30+09:00 Subject: Re: error with regular expression inside eval block 2009/1/29 Barun Singh : > Iñaki Baz Castillo wrote: >> El Jueves, 29 de Enero de 2009, Barun Singh escribió: >>> >>> >> outputs "nil" to the screen >>> >>> Could someone explain why the eval statement returns an incorrect result >>> for the regexp match? Thanks... >> >> It works if you escape the \ with \\ : >> >> eval %Q{'1' =~ /^[\\d]+$/} >> => 0 >> >> Not sure why the \ must be escaped into a block code. > > Ah, thanks that worked. I wonder why extra escaping is needed just > because it's in a block... It's not a block - it's a doubly quoted string! Ruby version 1.8.7 irb(main):001:0> %Q{foo} => "foo" irb(main):002:0> %Q{foo}.class => String irb(main):003:0> %Q{foo\\no} => "foo\\no" irb(main):004:0> %Q{foo\no} => "foo\no" irb(main):005:0> puts %Q{foo\no} foo o => nil irb(main):006:0> puts %Q{foo\\no} foo\no => nil Kind regards robert -- remember.guy do |as, often| as.you_can - without end