gpt4 book ai didi

lua - Lua中的字符串替换

转载 作者:行者123 更新时间:2023-12-04 18:13:05 24 4
gpt4 key购买 nike

我希望在 Lua 中编写一个函数,用另一个字符串替换所有出现的一个字符串,例如:

function string.replace(s, oldValue, newValue)
return string.gsub(s, oldValue, newValue);
end;

我需要的(除非 Lua 已经有一个字符串替换函数)是一个转义 Lua 正则表达式模式字符串的函数(除非 Lua 已经有一个 EscapeRegularExpressionPattern 函数)

我试着开始写正确的 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, "%.");

最佳答案

我用

-- Inhibit Regular Expression magic characters ^$()%.[]*+-?)
function strPlainText(strText)
-- Prefix every non-alphanumeric character (%W) with a % escape character,
-- where %% is the % escape, and %1 is original character
return strText:gsub("(%W)","%%%1")
end -- function strPlainText

关于lua - Lua中的字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com