Я пытаюсь сопоставить любой оператор if, заканчивающийся на ::, и заменить его на «if (condition) then».Образец, который нужно совместить до тех пор, пока «::» не будет работать с string.gsub
Например:
if (x) ::
следует заменить
if (x) then
Я использую string.gsub
для достижения этой цели, но мне кажется, что моя модель не является правильным. Следующий код соответствует только одному оператору if, но я хочу, чтобы он соответствовал всем им.
local code = [[
if (x) ::
end
if (y) ::
end
]]
print(code:gsub("(if.+)::", "%1 then"))
--[[
what I wanted:
if (x) then
end
if (y) then
end
what I got:
if (x) ::
end
if (y) then
end
]]
Я не уверен, что я делаю неправильно. Может ли кто-нибудь помочь?
Я надеялся на выход сказать ', если (х), то end' ', если (у) тогда end' (в основном, заменяя any :: на «then».) Однако мне нужно сопоставить всю инструкцию if, а не только :: – David
Right; Я ошибся; следует использовать '-'. –
А, это сработало! Спасибо! – David