【问题标题】:Equivalent to Python’s findall() method in Ruby?相当于 Ruby 中 Python 的 findall() 方法?
【发布时间】:2009-06-30 13:09:06
【问题描述】:

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

使用 Python 这对我来说很好:

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

如何在 Ruby 中做到这一点?

【问题讨论】:

    标签: python ruby regex


    【解决方案1】:
    f = File.new("tracklist.txt", "r")
    s = f.read
    s.scan(/mmc.+?mp3/) do |track|
      puts track
    end
    

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

    【讨论】:

      【解决方案2】:

      我不是很了解python,但应该会

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

      或

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

      【讨论】:

        【解决方案3】:

        更简单:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-18
          • 1970-01-01
          • 2020-02-16
          • 2019-07-04
          • 2011-10-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多