我是 Ruby 新手,我想从文件中选择一些与正则表达式匹配的行,然后存储到列表中。
所以我写了以下代码:
def get_valid_instr istream
p istream.select { |line| line.scan(/(^\s*\w+\s*;\s*\w+\s*$)/){|instr| instr[0].upcase.strip.split(";")}}
end
trace_instr = File.open("#{file_name}", "r"){|stream| get_valid_instr stream}
输出只是所有文件的显示。如果我在扫描块中打印,我会确切地看到我想要的。还有其他方法可以做到这一点(填写外部列表),但我想知道为什么它不起作用以及是否有 ruby 方式。