Ich benutze Ruby 2.4. Ich habe ein Array mit String-Datenelementen, die wie folgt aussehenWie kann ich eine Funktion auf ein Array anwenden und zwei separate Arrays bilden?
["a word1 word2", "b eff", "a idaho orange", "new old shoe", "b mars", ...]
Ich möchte zwei Arrays aus dem obigen bilden, eine Funktion (.split(/^(a|b)[[:space]]*/i
) zu jedem Element des Arrays angelegt wird. Ich kann jedoch nicht herausfinden, wie zwei getrennte Arrays gebildet werden. Das folgende
arr.map{ |x| x.split(/^(a|b)[[:space]]*/i) }
resultiert nur in einem einzelnen Array und hat ein leeres Element vor jedem Element. Im Idealfall würde ich die Ausgabe wie wie zwei Arrays sein
["a", "b", "a", "", "b", ...]
["word1 word2", "eff", "idaho orange", "new old shoe", "mars", ...]
Es sei ' "neuen alten Schuh"' 'waren "ein alter Schuh"' oder ' "bold alter Schuh"'? Was würden Sie erwarten, dass der Rückgabewert (in Anbetracht der Tatsache, dass die Regex auf das erste Zeichen dieser beiden Strings aufgeteilt werden würde)? Meinst du '[[: space:]] +' anstatt '[[:: space:]] *'? –
Wenn Sie ein Beispiel geben, 1) machen Sie alle Eingabewerte gültig Ruby-Objekte (keine '" ... "', unter anderem); 2) Weisen Sie allen Eingabeobjekten eine Variable zu (z. B. 'arr = ["a word1 word2", "b eff", "a idaho orange", "neuer alter Schuh", "b mars"]), so dass Leser es können cut and paste, um den Code zu testen und auf diese Variablen ("arr") in Antworten in Kommentaren zu verweisen, ohne sie definieren zu müssen; und 3) zeigen Sie Ihre gewünschte Ausgabe als ein gültiges Ruby-Objekt an (dort sind keine Variablen erforderlich). –