하나의 패턴을 사용하여 다중 교체 ;
단일 ;
, 마지막을 제거하고 다른 하나를 제거합니다 ;
이와 같다
local str = "one;two;;three;four;;five;;six;seven;"
local result = str:gsub(';+', ';'):gsub(';*$', '')
단일 패턴을 사용하는 한 가지 가능한 방법은 다음과 같습니다.
local result = (str .. ";;;"):gsub(";+", function(s)
if s == ";" or s == ";;" then
return ";"
else
return ""
end
end)
내가하려는 것은 세 가지를 추가하는 것입니다 ;
문자열의 끝까지 ;
하나로 교체해야합니다 ;
. 그리고 더 ;
(3 ~ 4 개일 수 있고 끝에 있어야합니다) 비어있는 문자열로 교체됩니다.
더 명확하므로 두 가지 패턴의 솔루션을 선호합니다.