Utilisation d'un modèle pour remplacer plusieurs ;
selectionner ;
, et un autre pour supprimer le dernier ;
est comme ça
local str = "one;two;;three;four;;five;;six;seven;"
local result = str:gsub(';+', ';'):gsub(';*$', '')
Une façon possible d'utiliser un seul modèle est ceci:
local result = (str .. ";;;"):gsub(";+", function(s)
if s == ";" or s == ";;" then
return ";"
else
return ""
end
end)
Ce que j'essaie de faire, c'est d'ajouter trois ;
à la fin de la chaîne, donc un ou deux ;
devrait être remplacé par un ;
. Et plus ;
(pourrait être trois ou quatre et il doit être à la fin) est remplacé en chaîne vide.
Je préférerais la solution avec deux modèles car il est plus clair.