Ruby过滤问题

时间:2013-03-25 16:34:34

标签: ruby regex

我一直试图过滤文件中的某些文字,只显示某些出生年份

我有一些红宝石读入文件ages.txt,它包含姓名和出生年份

  • Joe Bloggs(2001)
  • Mary Bloggs(1987)
  • John apples(2010)
  • Old Guy(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 个答案:

答案 0 :(得分:1)

^$使表达式尝试匹配整行,这将无效。

尝试:/19(8[7-9]|90)/

Here是一个有效的版本。如果这有帮助,请告诉我。