2010-05-06 6 views
6

Ho una stringa in lua.lua diviso in parole

È un gruppo di [a-zA-Z0-9] + separato da un numero (1 o più) di spazi.

Come posso prendere la stringa e dividerla in una tabella di stringhe?

+0

possibile duplicato (http://stackoverflow.com/questions/1426954/split-string-in-lua) – Jacob

risposta

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

gnome manuale di riferimento dice: '% w' rappresenta tutti i caratteri alfanumerici. – 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

manuale di riferimento gnome dice [stringa di Spalato in lua?]: '% S' rappresenta tutti i caratteri non spaziali. – u0b34a0f6ae

+8

La risposta accettata (ponzao) va bene con le specifiche nella domanda, ma il motivo per preferire la risposta di lhf è che se hai testo a 8 bit o multibyte (tutto non-ascii), puoi comunque dividerlo correttamente solo sugli spazi usando questo metodo. – u0b34a0f6ae

+0

@ u0b34a0f6ae Quindi, ad esempio, funzionerebbe con la codifica UTF-8. :]]] (ma non con alcuni spazi bianchi speciali Unicode che usano punti di codice più lunghi) – Hydro