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

时间:2009-06-30 13:09:07

标签: python ruby regex

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

使用Python这对我很有用:

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

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:0)

更简单:

puts File.read('tracklist.txt').scan /mmc.+?mp3/
相关问题