如何从文本文件中获取匹配项并将其输出到数组中?

时间:2017-04-18 01:16:25

标签: arrays ruby text

我使用带有电影线的文本文件。如果用户输入Oz,我想要输出文件中包含单词Oz的所有电影。

这是我到目前为止所做的。

puts "Enter the keyword you want to search for: "
keyword = gets
movies_file = File.new("movies.txt", "r")
movies = movies_file.read
movies_list = movies.split(" ")
match_list = []
movies_list.each do |w|
  matchObj = w.match(keyword)
  if matchObj then
    matchlist.push(matchObj.captures[0])
  end
end
match_list.each do |title|
  puts title
end

1 个答案:

答案 0 :(得分:1)

假设您已将文件组织成这样:

Wizard of Oz
Battlefield Earth
Twilight
Ozymandias

然后你可以用这种方式阅读:

lines = File.readlines('movies.txt').map(&:chomp)

然后找到匹配的行:

matches = lines.grep(phrase)

不需要所有each内容。此外then上的if几乎从未放在那里,它只是无用的装饰。