用于解析可选部分字符串的Lua模式
问题描述:
我必须解析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
+0
解决与相同的解决方案,谢谢 – karim 2014-08-30 12:52:43
Lua的图案不是正则表达式。你想要匹配什么?使用具体的例子来解释什么是输入和什么是预期输出。 – 2014-08-30 11:02:45
我不知道lua但不存在'split'? – Toto 2014-08-30 12:05:42