Usando un patrón para reemplazar múltiples ;
a soltero ;
, y otro para eliminar el último ;
es así
local str = "one;two;;three;four;;five;;six;seven;"
local result = str:gsub(';+', ';'):gsub(';*$', '')
Una posible forma de usar un solo patrón es como esta:
local result = (str .. ";;;"):gsub(";+", function(s)
if s == ";" or s == ";;" then
return ";"
else
return ""
end
end)
Lo que estoy tratando de hacer es agregar tres ;
al final de la cadena, por lo que cualquiera o dos ;
debe ser reemplazado por uno ;
. Y más ;
(podría ser tres o cuatro y debe ser al final) se reemplaza a una cadena vacía.
Preferiría la solución con dos patrones, ya que es más claro.