String = "Mod1:10022932,10828075,5946410,13321905,5491120,5030731|Mod2:22704455,22991440,22991464,21984312,21777721,21777723,21889761,21939852,23091478,22339903,23091485,22099714,21998260,22364832,21939858,21944274,21944226,22800221,22704443,21777728,21777719,21678184,21998265,21834900,21984331,22704454,21998261,21944214,21862610,21836482|Mod3:10828075,13321905,5491120,5946410,5030731,15806212,4100566,4787137,2625339,2408317,2646868,19612047,2646862,11983534,8591489,19612048,10249319,14220471,15806209,13330887,15075124,17656842,3056657,5086273|Mod4:10828075,5946410,13321905,5030731,5491120,4787137,4100566,15806212,2625339,3542205,2408317,2646862,2646868|Mod5:10022932;0.2512,10828075;0.2093,5030731;0.1465,5946410;0.1465,4787137;0.1465,2625339;0.0143,5491120;0.0143,13321905;0.0143,3542205;0.0143,15806212;0.0119,4100566;0.0119,19612047;0.0100,2408317;0.0100"
어떻게 각 제목 (Mod1, Mod2 ..) 및 각 제목에 속하는 ID를 얻을 수 있도록 분할 할 수 있습니까?Ruby 스플릿 문자열
이것은 제가 지금까지 시도한 바 있습니다. 파이프가 끝나면 모든 것을 제거하고 있습니다.
mod_name = string.split(":")[0]
mod_ids = string.split(":")[1] #This gets me the ID's but also include the |Mod*
ids = mod_mod_ids.split("|").first.strip #Only returns Id's before the first "|"
원하는 출력 : I는 해당 컬럼에 mod_name 및 mod_ids을 저장해야 ,
이 할 수있는 몇 가지 방법이 있습니다mod_name = #name ("Mod1...Mod2 etc) #string
mod_ids = #ids (All Ids after the ":" in Mod*:) #array
"|" 'Mod1 : num, num, num' 형식의 문자열 배열을 제공 한 다음 해당 배열을 반복하고 ":"의 각 요소를 분할하여 이름에서 ID를 분리합니다. – DiMono
원하는 출력 종류를 지정해야합니다. – Zippie
@Zippie가 추가되었습니다. 고맙습니다. – Yogzzz