【问题标题】:Parse Tab Delimited Text from POST从 POST 解析制表符分隔的文本
【发布时间】:2015-02-02 20:42:23
【问题描述】:

我有一个 API 在字段值中向我发送制表符分隔的信息

我需要将其解析为单独的字段:

发帖:

"\nuserName\tpassword\tfName\tlName\tuserPhone\tcompName\tcontName\taddr1\taddr2\tcity\tstate\tpostalCode\tcountry\tphone\tfax\temail\tbusnType\tDOTNumber\tMCNumber\ntest\tabc123\tTest\tName\t(555) 555-5555\t\t\t\t\t\t\t58638\tUS\t(555) 555-5555\t(555) 555-5555\t\tTest\t12345678\tMC000000\n"

字段应匹配的内容:

  userName        password        fName   lName   userPhone       compName        contName        addr1   addr2   city    state   postalCode      country phone   fax     email   busnType        DOTNumber       MCNumber
  test    abc123  Test    Name    (555) 555-5555                                                  58638   US      (555) 555-5555  (555) 555-5555          Test    12345678        MC000000

不确定我是否必须将其写入 csv 文件然后读取它,或者我是否可以按原样读取。或如何去做。

【问题讨论】:

    标签: ruby-on-rails parsing csv


    【解决方案1】:

    最简单的方法是使用 Ruby 的 CSV 标准库:

    require 'csv'
    
    s = "\nuserName\tpassword\tfName\tlName\tuserPhone\tcompName\tcontName\taddr1\taddr2\tcity\tstate\tpostalCode\tcountry\tphone\tfax\temail\tbusnType\tDOTNumber\tMCNumber\ntest\tabc123\tTest\tName\t(555) 555-5555\t\t\t\t\t\t\t58638\tUS\t(555) 555-5555\t(555) 555-5555\t\tTest\t12345678\tMC000000\n"
    
    csv = CSV.new(s, col_sep: "\t")
    csv.each do |row|
      puts row.inspect
    end
    

    输出是:

    []
    ["userName", "password", "fName", "lName", "userPhone", "compName", "contName", "addr1", "addr2", "city", "state", "postalCode", "country", "phone", "fax", "email", "busnType", "DOTNumber", "MCNumber"]
    ["test", "abc123", "Test", "Name", "(555) 555-5555", nil, nil, nil, nil, nil, nil, "58638", "US", "(555) 555-5555", "(555) 555-5555", nil, "Test", "12345678", "MC000000"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      相关资源
      最近更新 更多