2014-08-30 44 views
1

我必須解析value, value, value, value, value形式的字符串。最後兩個值是可選的。這是我的代碼,但它只能提供必需的參數:用於解析可選部分字符串的Lua模式

Regex = "([^,])+, ([^,])+, ([^,])+" 

我使用string.match來獲取值到變量。

+2

Lua的圖案不是正則表達式。你想要匹配什麼?使用具體的例子來解釋什麼是輸入和什麼是預期輸出。 – 2014-08-30 11:02:45

+0

我不知道lua但不存在'split'? – Toto 2014-08-30 12:05:42

回答

2

既然你用逗號分割的字符串,請使用gmatch

local tParts = {} 
for sMatch in str:gmatch "([^,]+)" do 
    table.insert(tParts, sMatch) 
end 

現在,一旦該部分被存儲在表內;你可以檢查表中包含在索引4和匹配組5由:

if tParts[4] and tParts[5] then 
    -- do your job 
elseif tParts[3] then 
    -- only first three matches were there 
end 
+0

解決與相同的解決方案,謝謝 – karim 2014-08-30 12:52:43

0

Lua中,您無法使捕獲組成爲可選組件,也無法使用邏輯OR運算符。所以答案是:這是不可能的。