Ruby on rails 钢轨弦分裂

Ruby on rails 钢轨弦分裂,ruby-on-rails,Ruby On Rails,正在寻找将数据字符串(paramaters)拆分为数组的方法,但有一些特定的条件来执行此操作。我拥有的字符串如下所示: cyr_ad_id\tproject_number\tname\tremote_reference\tsample_size\tad_length\tsample_description\tmedia_type\tnotes\r\n13342a\t13342\tMore Dad_BC\t2897855894001\t150\t:30\t50% Customers\r\n50%

正在寻找将数据字符串(paramaters)拆分为数组的方法,但有一些特定的条件来执行此操作。我拥有的字符串如下所示:

cyr_ad_id\tproject_number\tname\tremote_reference\tsample_size\tad_length\tsample_description\tmedia_type\tnotes\r\n13342a\t13342\tMore Dad_BC\t2897855894001\t150\t:30\t50% Customers\r\n50% Non-customers\tFilm\tBroadcast\r\n13342c\t13342\tDRTV - Hogs\t2897815438001\t150\t:60\t100% Non-customers\tFilm\tBroadcast\r\n13342d\t13342\tMake Way For More\t2897815439001\t150\t:30\t50% Customers\r\n50% Non-customers\tFilm\tBroadcast\r\n
我希望得到以下结果:

["cyr_ad_id\tproject_number\tname\tremote_reference\tsample_size\tad_length\tsample_description\tmedia_type\tnotes", "13342a\t13342\tMore Dad_BC\t2897855894001\t150\t:30\t50% Customers\r\n50% Non-customers\tFilm\tBroadcast", "13342c\t13342\tDRTV - Hogs\t2897815438001\t150\t:60\t100% Non-customers\tFilm\tBroadcast", "13342d\t13342\tMake Way For More\t2897815439001\t150\t:30\t50% Customers\r\n50% Non-customers\tFilm\tBroadcast"]
我觉得我需要做的是类似于在第8次出现“\t”之后将字符串拆分为“\r\n”。第8个实例是我希望通过变量传递到split语句中的内容

我不想将此字符串拆分为可能出现的“\r\n”,因此在本例中第n次或第8次出现“\t”是至关重要的


谢谢

这是否符合您的需要

def ssplit str, n
  r = Regexp.new "([^\t]*?\t){#{n}}(.*?\r\n)"
  matched = []

  while s = str.slice!(r) do
    matched << s.strip
  end

  matched
end
def ssplit str,n
r=Regexp.new“([^\t]*?\t){{{n}}(.*?\r\n)”
匹配=[]
而s=str.slice!(r) 做
匹配
您的\u字符串.gsub(“\r\n”,“\t”).gsub(“\n”,”).split(“\t”)。每个\u片段(8)。到\u a

将所有
\r\n
替换为
\t
,然后清除剩余的
\n
。在
\t
s上拆分。现在您有了一个项目数组

你也可以使用正则表达式,我似乎无法使用它
.split(/\\r |\\t |\\n/)

。每个\u片(8)。to\u a
一次获取8个项目并将其备份,因此每个组都有一个数组

您也可以在(8)个组中执行
,而不是
。每个片
。那么也不需要
。\u a

[["cyr_ad_id", "project_number", "name", "remote_reference", "sample_size", "ad_length", "sample_description", "media_type"], ["notes", "13342a", "13342", "More Dad_BC", "2897855894001", "150", ":30", "50% Customers"], ["50% Non-customers", "Film", "Broadcast", "13342c", "13342", "DRTV - Hogs", "2897815438001", "150"], [":60", "100% Non-customers", "Film", "Broadcast", "13342d", "13342", "Make Way For More", "2897815439001"], ["150", ":30", "50% Customers", "50% Non-customers", "Film", "Broadcast"]]

这似乎更有用?

嘿,谢谢!刚刚将该功能插入到我的应用程序中,在做了一些简短的测试之后,它似乎正按照我的要求工作!:-)