2015-11-12 24 views
3

我有相當簡單的問題,但我的谷歌的研究並沒有幫助。我非常新的Lua的,所以..Lua string.find格式正確?

我有字符串「XXXX_YYYYYY_zzzzzz」存儲在本地變量,我想分析,並得到3新的局部變量。我應該使用string.find嗎?

local str_ = "XXXX_YYYYY_zzzzzz"  
local first_, second_, third_ = strind.find(str_, "^(%w+)_(%w+)_(%w+)$") 

回答

5

使用string.match代替:

local str_ = "XXXX_YYYYY_zzzzzz"  
local first_, second_, third_ = str_:match "^([^_]+)_([^_]+)_([^_]+)$" 

看一看的string library on lua-users wiki

string.find將另外返回匹配的子串被找到/找到的索引。這兩個(開始和結束)索引對您的情況沒有用處,這就是爲什麼string.match會是更好的工具。

+0

除了'%w +',你可以使用'。-'來防止字段包含標點符號。 – lhf

+0

@lhf我寧願用'[^ ​​_]'去。無論如何,這些猜測將取決於來自OP的更多投入。 – hjpotter92