Jump to content

Module:string/charsetEscape

From Wiktionary, the free dictionary

local gsub = string.gsub

local chars
local function get_chars()
	chars, get_chars = {
		["\000"] = "%z", ["%"] = "%%", ["-"] = "%-", ["]"] = "%]", ["^"] = "%^",
	}, nil
	return chars
end

--[==[Escapes the magic characters used in pattern character sets: {%-]^}, and converts the null character to {%z}.]==]
return function(str)
	return (gsub(str, "[%z%%%-%]^]", chars or get_chars()))
end