2017-04-18 55 views
0

我正在使用帶有電影行的文本文件。如果用戶輸入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 
+0

什麼格式(如果有)是文本文件? –

+0

它在.txt文件中。 – LxM3078

回答

1

假設你已經有了這樣的組織的文件:

Wizard of Oz 
Battlefield Earth 
Twilight 
Ozymandias 

然後,你可以這樣閱讀:

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

然後找到匹配的行:

matches = lines.grep(phrase) 

沒有必要所有的each東西。 if上的then幾乎從未放在那裏,這只是無用的裝飾。

相關問題