String 用于解析带有可选部分的字符串的Lua模式
我必须解析一个字符串,格式为String 用于解析带有可选部分的字符串的Lua模式,string,lua,lua-patterns,String,Lua,Lua Patterns,我必须解析一个字符串,格式为value,value,value,value,value。最后两个值是可选的。这是我的代码,但它仅适用于必需的参数: Regex = "([^,])+, ([^,])+, ([^,])+" 我正在使用string.match将值转换为变量。在中,您不能将捕获组设置为可选,也不能使用逻辑OR运算符。因此答案是:这是不可能的。因为您要用逗号拆分字符串,所以请使用gmatch: local tParts = {} for sMatch in str:gmatch "(
value,value,value,value,value
。最后两个值是可选的。这是我的代码,但它仅适用于必需的参数:
Regex = "([^,])+, ([^,])+, ([^,])+"
我正在使用
string.match
将值转换为变量。在中,您不能将捕获组设置为可选,也不能使用逻辑OR运算符。因此答案是:这是不可能的。因为您要用逗号拆分字符串,所以请使用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
Lua模式不是正则表达式。你到底想配什么?用具体的例子来解释,什么是输入,什么是预期的输出。我不知道lua,但它不存在
split
?