2015-09-03 222 views
0

我有一个字符串下面给出:转义字符串中的字符

"\"funlolx.com, Likesgag.com (269556)\",3,0,0.000000000000000000" 

我想下面这样我可以通过","拆分它的字符串,

"funlolx.com Likesgag.com (269556),3,0,0.000000000000000000" 

所以最终的输出我得到的会如:

["funlolx.com Likesgag.com (269556)", "3", "0", "0.000000000000000000"] 
+0

这看起来像CSV,你为什么不干脆解析它是这样? –

+0

不,在CSV中我们做得很对。但是这个字符串是用JSON来的。 – RockStar

+1

好的,然后解析它为JSON?但它看起来不像JSON,它缺少'['和']'分隔符。它看起来很像CSV,它可以像CSV一样很好地解析。 –

回答

2
"\"funlolx.com, Likesgag.com (269556)\",3,0,0.000000000000000000" 
.gsub(/"[^"]+"/){|s| s.delete('",')} 
# => "funlolx.com Likesgag.com (269556),3,0,0.000000000000000000" 
1

这个可疑看起来像CSV对我说:

require 'csv' 
table = CSV.parse('"funlolx.com, Likesgag.com (269556)",3,0,0.000000000000000000') 
# => [["funlolx.com, Likesgag.com (269556)", "3", "0", "0.000000000000000000"]] 

注意:CSV期望获得一个表,即一个数组数组。在这种情况下,在表中只有一行,所以你想要得到的第一个:

table.first 
# => ["funlolx.com, Likesgag.com (269556)", "3", "0", "0.000000000000000000"] 

如果你真的必须摆脱逗号,那么你可以使用所有Ruby的标准字符串操作:

table.first.map {|s| s.delete(',') } 
# => ["funlolx.com Likesgag.com (269556)", "3", "0", "0.000000000000000000"]