Frage

Sagen wir, ich habe eine Zeichenfolge mit Komma Werte begrenzt in einfachen Anführungszeichen, die Kommas, wie dies kann oder nicht enthalten:

"'apples,bananas','lemons'"

und ich möchte, dass in ein Array aufteilen

["apples,bananas", "lemons"]

Offensichtlich wenn ich split(',') die Zeichenfolge ich

[ "'apples", "bananas'", "lemons" ]

, die ich nicht verstehe. Der einzige Weg, dies zu tun, das ich habe kommen mit ist

a = []
s = "'apples,bananas','lemons'"
s.scan(/\'([^\']+)\'/){|i| a << i[0]}

# result is ["apples,bananas", "lemons"]

Aber gibt es eine elegantere Möglichkeit? Gibt es etwas, mit der Split-Methode, die ich nicht bekommen, was das seltsame Ergebnis verursacht?

War es hilfreich?

Lösung

Eigentlich arbeitet spaltete sich die Art und Weise es soll. Aber es scheint, wie Sie versuchen, durch Komma getrennte Werte zu teilen. Und es gibt bereits eine Lösung für sie in Rubys stdlib:

http://www.ruby-doc.org /stdlib/libdoc/csv/rdoc/index.html

Oder wenn Sie ein externes libray (das angeblich besser, schneller, ...) verwenden FasterCSV .

Andere Tipps

Das Ergebnis #split ist vollkommen normal, ist das Verfahren soll nicht die Zeichenfolge in irgendeiner Weise zerlegen. Suchen Sie sich die Art und Weise Sie wissen, dass über eine elegante gearbeitet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top