0
我想從每行中匹配一個文件中的某種模式的數組數組。每行只有1個數字,但並非所有行都有數字(我想拒絕這些行)。我能夠做到這一點使用兩個數組操作,但我想知道是否有一個更清潔的方法。紅寶石搜索和替換readlines
lines = []
File.open(myfile, "r") do |file|
lines = file.readlines.select{|line| line =~ /^ *'(p_)*\d+'/}
end
nums = lines.collect{|line| line.chomp.sub(/^ *\'(p_)*(\d+)\'.*/, '\2').to_i}
我已經試過nums = file.readlines.collect{|line| line.chomp.sub(/^ *\'(p_)*(\d+)\'.*/, '\2').to_i}
但插入一個0到我的數組不匹配模式中的任何行。是否可以做一個搜索和替換,並只返回符合搜索條件的行?
這適用於我的具體情況,但如果我想要抓住的一些數字是零呢? –
GregRuhl,如果零是一個有效的結果,那麼你可以在'map'語句之前用'select'模式匹配器替換'reject'。 – Mori