API使用如下字符串进行响应。
"\"APPROVED\"|\"222222\"|\"11111111\"|\"\"|\"M\"|\"\"|\"5454\"|\"MC\""
我使用以下代码解析
str = str.scan(/\w+/)
这很好,因为我可以str [0],str [1]等等。
比
之类的回复"\"DECLINED\"|\"\"|\"64243178\"|\"\"|\"\"|\"\"|\"Invalid Exp Date\"|\"\"|\"5454\"|\"MC\""
尝试解析无效的Exp日期最终只需
str[2] => Invalid
我尝试了以下
str.split("\"|")
但开头总有一句话
"Invalid Exp Date
"APPROVED
解析这样一个字符串的最佳方法是什么?
答案 0 :(得分:4)
我可能会使用standard CSV parser,例如:
> s = "\"APPROVED\"|\"222222\"|\"11111111\"|\"\"|\"M\"|\"\"|\"5454\"|\"MC\""
> CSV.parse(s, :col_sep => '|')
=> [["APPROVED", "222222", "11111111", "", "M", "", "5454", "MC"]]
CSV涵盖的不仅仅是逗号分隔值,管道与逗号一样好。
答案 1 :(得分:0)
s = "\"APPROVED\"|\"222222\"|\"11111111\"|\"\"|\"M\"|\"\"|\"5454\"|\"MC\""
s.gsub('"','').split('|')
#=> ["APPROVED", "222222", "11111111", "", "M", "", "5454", "MC"]