簡體   English   中英

用Ruby解析奇數字符串

[英]Parsing odd string with Ruby

API用諸如以下的字符串響應。

"\"APPROVED\"|\"222222\"|\"11111111\"|\"\"|\"M\"|\"\"|\"5454\"|\"MC\""

我正在使用以下代碼進行解析

str = str.scan(/\w+/)

正如我可以的str [0],str [1]等那樣,它工作得很好。

比諸如

"\"DECLINED\"|\"\"|\"64243178\"|\"\"|\"\"|\"\"|\"Invalid Exp Date\"|\"\"|\"5454\"|\"MC\""

試圖解析無效的Exp Date最終會簡單地

str[2] => Invalid

我嘗試了以下

str.split("\"|")

但是開頭總是有一個報價

"Invalid Exp Date
"APPROVED

解析這樣的字符串的最佳方法是什么?

我可能為此使用標准的CSV解析器 ,例如:

> s = "\"APPROVED\"|\"222222\"|\"11111111\"|\"\"|\"M\"|\"\"|\"5454\"|\"MC\""
> CSV.parse(s, :col_sep => '|')
 => [["APPROVED", "222222", "11111111", "", "M", "", "5454", "MC"]] 

CSV不僅涵蓋逗號分隔值,而且管道與逗號一樣好。

這是使用String#gsubString#split的簡單解決方案:

s = "\"APPROVED\"|\"222222\"|\"11111111\"|\"\"|\"M\"|\"\"|\"5454\"|\"MC\""

s.gsub('"','').split('|')
  #=> ["APPROVED", "222222", "11111111", "", "M", "", "5454", "MC"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM