On Wed, 26 Apr 2006, Jamal Mazrui wrote: > Second, how do I ensure that tokens are translated in a string variable? > I am developing a program with a search feature. I want the user to be > able to indicate carriage return, line feed, tab, and form feed > characters using the standard tokens of \r, \n, \t, and \f. I do not > want them to have to specify a true regular expression, however, since > other characters such as a period would then need to be escaped and I > want to minimize user knowledge requirements. irb(main):007:0> s = 'foo\tbar\n' => "foo\\tbar\\n" irb(main):008:0> s = eval "%Q(#{ s })" => "foo\tbar\n" irb(main):009:0> puts s foo bar => nil but i would advise against this. instead, just make a little parser class: harp:~ > cat a.rb class SearchExpression < ::String INTERPOLATE = { '\n' => "\n", '\t' => "\t", '\r' => "\r", '\f' => "\f", } def initialize *a, &b super and interpolate! end def interpolate! INTERPOLATE.each do |k,v| gsub! Regexp::new(Regexp::escape(k)), v end end end s = SearchExpression::new 'foo\tbar\n' p s puts s harp:~ > ruby a.rb "foo\tbar\n" foo bar easy cheasy. -a -- be kind whenever possible... it is always possible. - h.h. the 14th dali lama