Вы можете использовать CSV и установить :quote_char => "'"
для обработки разделителя внутри ваших полей:
#encoding: utf-8
require 'csv'
input = <<data
1,'Tambaú','Praça Santo António','Tambaú','12x0',2,'I','EM',12,6,5934,50
2,'Beira Rio','Av. Beira Rio, Prox. Av Odilon Coutinho','Beira Rio','12x0',2,'I','EM',12,0,7249,0
3,'Cabo Branco','Cabo Branco, Prox. Rua Alice de Almeida','Cabo Branco','12x0',2,'I','EO',12,0,4751,0
901,'teste','teste','teste','Mini-estação de demonstração',1,'I','EO',2,1,97,50
data
CSV.new(input, :quote_char => "'").each{|data|
p data.size
p data
}
Если у вас нет String, а Array в качестве источника, вам нужно немногоАдаптация:
#encoding: utf-8
require 'csv'
regexArr = [
["1,'Tambaú','Praça Santo António','Tambaú','12x0',2,'I','EM',12,6,5934,50"],
["2,'Beira Rio','Av. Bei ra Rio, Prox. Av Odilon Coutinho','Beira Rio','12x0',2,'I','EM',12,0,7249,0"],
["3,'Cabo Branco','Cabo Bra nco, Prox. Rua Alice de Almeida','Cabo Branco','12x0',2,'I','EO',12,0,4751,0"],
["901,'teste','teste','test e','Mini-estação de demonstração',1,'I','EO',2,1,97,50"]
]
regexArr.each do |loc|
CSV.new(loc.first, :quote_char => "'").each do |data|
p data
end
end
В качестве альтернативы вы можете создать строку:
input = regexArr.flatten.join("\n")
CSV.new(input, :quote_char => "'").each{|data|
p data.size
p data
}
Оба метода ожидают массив с массивами из одного элемента.