我希望在 Lua 中编写一个函数,用另一个字符串替换所有出现的一个字符串,例如:
function string.replace(s, oldValue, newValue)
return string.gsub(s, oldValue, newValue);
end;
我需要的(除非 Lua 已经有一个字符串替换功能)是一个转义 Lua正则表达式模式字符串的函数(除非 Lua 已经有一个转义正则表达式模式函数)
我试图开始编写正确的string.replace
函数:
local function EscapeRegularExpression(pattern)
-- "." ==> "%."
local s = string.gsub(pattern, "%." "%%%.");
return s;
end;
function string.replace(s, oldValue, newValue)
oldValue = EscapeRegularExpression(oldValue);
newValue = EscapeRegularExpression(newValue);
return string.gsub(s, oldValue, newValue);
end;
但我不能轻易想到所有需要转义的 Lua正则表达式模式关键字。
奖金示例
另一个需要修复的例子可能是:
//Remove any locale thousands separator:
s = string.gsub(s, Locale.Thousand, "");
//Replace any locale decimal marks with a period
s = string.gsub(s, Locale.Decimal, "%.");