2010-05-06 43 views
6

我在lua有一個字符串。lua分成詞

這是一堆[a-zA-Z0-9] +由數字(1或更多)空格分隔。

如何取出字符串並將其拆分爲字符串表格?

+0

的可能重複(http://stackoverflow.com/questions/1426954/split-string-in-lua) – Jacob 2011-12-30 19:15:39

回答

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

參考手冊gnome說:'%w'表示所有字母數字字符。 – u0b34a0f6ae 2010-05-06 15:44:58

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

參考手冊侏儒說[在LUA分割字符串?]:'%S'代表所有非空格字符。 – u0b34a0f6ae 2010-05-06 15:45:29

+8

接受的答案(ponzao)與問題中的規範是一致的,但是更喜歡lhf的答案的原因是,如果您有8位或多字節文本(所有內容都不是ascii),仍然可以正確分割這種方法。 – u0b34a0f6ae 2010-05-06 15:50:08

+0

@ u0b34a0f6ae因此,例如,它可以使用UTF-8編碼。 :]]](但不適用於某些使用較長代碼點的Unicode特殊空格) – Hydro 2017-03-22 10:53:59