2010-05-06 17 views
6

Ich habe eine Zeichenfolge in lua.lua in Worte aufgeteilt

Es ist eine Reihe von [a-zA-Z0-9] + durch eine Zahl (1 oder mehr) getrennt.

Wie nehme ich die Zeichenfolge und teile sie in eine Tabelle von Strings?

+0

möglich Duplikat (http://stackoverflow.com/questions/1426954/split-string-in-lua) – Jacob

Antwort

11
s = "foo bar 123" 
words = {} 
for word in s:gmatch("%w+") do table.insert(words, word) end 
+6

Referenzhandbuch gnome sagt: '% w' steht für alle alphanumerischen Zeichen. – u0b34a0f6ae

34
s="How do I take the string and split it into a table of strings?" 
for w in s:gmatch("%S+") do print(w) end 
+7

Referenzhandbuch gnome sagt [Split-String in lua?]: '% S' repräsentiert alle Nicht-Leerzeichen. – u0b34a0f6ae

+8

Die akzeptierte Antwort (ponzao) ist in Ordnung mit der Spezifikation in der Frage, aber der Grund, lhf's Antwort vorzuziehen, ist, dass wenn Sie 8-Bit- oder Multibyte-Text haben (alles nicht-ASCII), können Sie immer noch korrekt auf nur Leerzeichen mit diese Methode. – u0b34a0f6ae

+0

@ u0b34a0f6ae So, zum Beispiel, es würde mit UTF-8-Codierung funktionieren. :]]] (aber nicht mit einigen speziellen Unicode-Whitespaces, die längere Codepunkte verwenden) – Hydro