相当于Ruby中的Python的findall()方法?

我需要从列表中的模糊列表中提取所有MP3标题。

使用Python,这对我很有用:

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

我怎么能在Ruby中做到这一点?

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

这段代码的作用是打开文件进行读取,并将内容作为字符串读入变量s 。 然后扫描字符串以查找正则表达式/mmc.+?mp3/收集所有匹配的数组),并打印它找到的每个匹配项。

我不太了解python,但它应该是

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

要么

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

更简单:

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