0

我有一个 .txt 文件,其中不包含这样的插入查询。我想解析 file.txt 并获取数据,以便为我的 rails 应用程序保存在我的 mongoid db 中。我尝试使用基本的 ruby​​ 方法进行解析,但无法获得正确的格式。我可以从可以直接用于实现批量插入或正则表达式来解析和获取值的数据中获取哈希值。

INSERT INTO "venues" ("_id", "postal_code", "lat", "lng", "address", "title", "type") 
VALUES (33, "SW1A 0AA", "51.49984", "-0.124663", "BIG BEN & HOUSES OF PARLIAMENT, House of 
Commons, London, SW1A 0AA","BIG BEN & HOUSES OF PARLIAMENT", 2);
4

2 回答 2

1

您需要一个正则表达式,它包含一个INSERT INTO (...)VALUES (...)部分并且不依赖于新行符号。例如:

str.gsub(/(\r|\n)/, '') =~ /INSERT INTO "(\w{1,})" \((.*{1,})\) VALUES \((.*{1,})\)/

然后你将有下一个变量:

table, keys, values = $1, $2, $3

您还可以从额外的符号中清除键和值:

keys.split(",").map {|val| val.gsub("\"", '').strip }
values.split(",").map {|val| val.gsub("\"", '').strip }

所以现在您已经拥有了处理迁移到 MongoDB 所需的所有数据。

于 2012-07-25T10:46:01.957 回答
0

item.scan(/VALUES\s(.+)/).first.gsub(/VALUES\s(|)|\"/,"").split(", ")

于 2012-08-29T19:08:00.830 回答