2013-03-25 112 views
0

我一直在試圖從一個文件中的一些文本過濾器只顯示某些年份出生的紅寶石濾波問題

我有些紅寶石,在一個文件中讀取ages.txt,它包含出生

的名稱和年
  • 李四(2001)
  • 瑪麗·布洛斯(1987)
  • 約翰蘋果(2010)
  • 老傢伙(1990)

我希望能夠過濾一年範圍,即找到1987年和1990年

之間出生的人我都試過

#open('ages.txt') { |f| f.grep(/^19(8[0-9]|10)$/) } 

,但我得到一個錯誤

ages.rb:3:in `===': invalid byte sequence in UTF-8 (ArgumentError) 

任何幫助將是偉大的。

回答

1

^$使表達式嘗試匹配整行,這將不起作用。

嘗試:/19(8[7-9]|90)/

Here是一個工作版本。讓我知道這是否有幫助。

+0

你的答案應該在這裏,而不是(僅)在Rubular上。 – 2013-03-25 16:43:58

+0

增加了它,對不起, – 2013-03-25 16:50:20

+0

謝謝,但我仍然得到紅寶石錯誤 – Nemothefish 2013-03-26 10:57:13