Usando uno schema per sostituire più ;
a single ;
, e un altro per rimuovere l'ultimo ;
è come questo
local str = "one;two;;three;four;;five;;six;seven;"
local result = str:gsub(';+', ';'):gsub(';*$', '')
Un modo possibile per usare un singolo modello è così:
local result = (str .. ";;;"):gsub(";+", function(s)
if s == ";" or s == ";;" then
return ";"
else
return ""
end
end)
Quello che sto cercando di fare è aggiungere tre ;
alla fine della stringa, quindi uno o due ;
dovrebbe essere sostituito con uno ;
. E altro ;
(Potrebbe essere tre o quattro e deve essere alla fine) viene sostituito in una stringa vuota.
Preferirei la soluzione con due schemi in quanto è più chiaro.