2010-05-06 45 views
6

Tengo una cadena en lua.lua dividir en palabras

Es un grupo de [a-zA-Z0-9] + separados por un número (1 o más) espacios.

¿Cómo tomo la cadena y la divido en una tabla de cadenas?

+0

posible duplicado de (http://stackoverflow.com/questions/1426954/split-string-in-lua) – Jacob

Respuesta

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

manual de referencia gnome dice: '% w' representa todos los caracteres alfanuméricos. – 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

manual de referencia GNOME dice [Separar una cadena en Lua?]: '% S' representa todos los caracteres no espaciales. – u0b34a0f6ae

+8

La respuesta aceptada (ponzao) está bien con la especificación en la pregunta, pero la razón para preferir la respuesta de lhf es que si tiene texto de 8 bits o multibyte (todo no es ascii), aún puede dividir correctamente solo en espacios usando este método. – u0b34a0f6ae

+0

@ u0b34a0f6ae Entonces, por ejemplo, funcionaría con codificación UTF-8. :]]] (pero no con algunos espacios en blanco especiales de Unicode que usan puntos de código más largos) – Hydro

Cuestiones relacionadas