在Ruby中1.9.3p194爲什麼Array#grep用斜槓引發語法錯誤?
> %w(a b c).grep(/a/) { |v| v.upcase }
=> ["A"]
但是,如果陣列中的任何元素中有一個斜線,一個SyntaxError異常下列命令的工作:
> %w(a/ b c).grep(/a/) { |v| v.upcase }
SyntaxError: (irb):41: syntax error, unexpected tMATCH
%Q/a// =~ /a/
我假設我使用grep不正確,但我得到的錯誤是非常混亂。爲什麼會拋出這個錯誤,以及基於正則表達式在數組中找到元素的正確方法是什麼?
更新:
選擇給我我想要的,但我還是好奇的grep是...
> %w(a/ b c).select {|v| v =~ /a/ }
=> ["a/"]
適用於Ruby 1.8.7。你使用什麼版本? – 2012-08-15 01:15:24
我正在使用1.9.3p194 – 2012-08-15 01:15:48
Gah它是Rails控制檯中的東西,它正在破壞它! irb工作正常:( – 2012-08-15 01:22:27