我必須解析value, value, value, value, value
形式的字符串。最後兩個值是可選的。這是我的代碼,但它只能提供必需的參數:用於解析可選部分字符串的Lua模式
Regex = "([^,])+, ([^,])+, ([^,])+"
我使用string.match
來獲取值到變量。
我必須解析value, value, value, value, value
形式的字符串。最後兩個值是可選的。這是我的代碼,但它只能提供必需的參數:用於解析可選部分字符串的Lua模式
Regex = "([^,])+, ([^,])+, ([^,])+"
我使用string.match
來獲取值到變量。
既然你用逗號分割的字符串,請使用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
解決與相同的解決方案,謝謝 – karim 2014-08-30 12:52:43
在Lua中,您無法使捕獲組成爲可選組件,也無法使用邏輯OR運算符。所以答案是:這是不可能的。
Lua的圖案不是正則表達式。你想要匹配什麼?使用具體的例子來解釋什麼是輸入和什麼是預期輸出。 – 2014-08-30 11:02:45
我不知道lua但不存在'split'? – Toto 2014-08-30 12:05:42