lua string.gsub替换是考虑大小写的,以下方法可以实现大小写不敏感。
local gisub = function(s, pat, repl, n)
pat = string.gsub(pat, '(%a)', function (v) return '['..string.upper(v)..string.lower(v)..']' end)
if n then
return string.gsub(s, pat, repl, n)
else
return string.gsub(s, pat, repl)
end
end
str = "sample abc Ab"
str2 = gisub(str, "ab", "**")
-- "sample **c **"
参考:
- Case-insensitive gsub?
- 20.4 – Tricks of the Trade
- Lua:大小写不敏感引用table键及递归设置元表 仅适用于小型功能,性能不佳
- 请问lua如何不区分大小写的进行字符串查找?
————————————————
版权声明:本文为CSDN博主「CoderHustlion」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/techfield/article/details/117083790