2009-06-30 65 views
2

我需要從列表中的模糊列表中提取所有MP3標題。等價於Ruby中的findall()方法?

使用Python這一優良工作對我來說:

import re 
for i in re.compile('mmc.+?mp3').findall(open("tracklist.txt").read()): print i 

我怎樣才能做到在Ruby中?

回答

5
f = File.new("tracklist.txt", "r") 
s = f.read 
s.scan(/mmc.+?mp3/) do |track| 
    puts track 
end 

什麼這個代碼是開放的文件進行讀取,並讀取內容一個字符串變成s。然後掃描正則表達式的字符串/mmc.+?mp3/String#scan收集所有匹配的數組),並打印找到的每一個。

3

我不知道蟒蛇非常好,但它應該是

File.read("tracklist.txt").matches(/mmc.+?mp3/).to_a.each { |match| puts match } 

File.read("tracklist.txt").scan(/mmc.+?mp3/) { |match| puts match } 
0

更簡單:

puts File.read('tracklist.txt').scan /mmc.+?mp3/