将Python翻译成Lua:替换列表中的字符串字符



我正在学习Lua,我对python有一些了解,我想像在python中一样替换字符串中的字符,但我没有幸运地找到确切的翻译函数。

我想在Lua中做到这一点:

l = ["#01","#02", "#03"]
print(l)
for i in range(len(l)):
l[i]=l[i].replace("#","")
#print (i)
print (l)

string.gsub()的模拟,但没有魔术字符(普通替换(

function string:replace(pattern, replace_string, ...)
return (self:gsub(
pattern:gsub("%p","%%%0"), 
replace_string:gsub("%%","%%%%"), 
...
))
end

例:

print(string.replace("25%", "%", " percent"))  --> 25 percent
print(("n>=0"):replace(">=", "≥"))             --> n≥0
s = "#01"; print(s:replace("#", ""))           --> 01

首先,在 Python 中,您将使用列表推导

>>> l = ["#01", "#02", "#03", "04"]
>>> l = [s.replace('#', '') for s in l]
>>> print(l)
['01', '02', '03', '04']

如果您确实需要就地更新列表:

>>> l[:] = [s.replace('#', '') for s in l]

在Lua中,您可以使用for遍历列表/数组/表,并使用gsub替换子字符串:

> l = {"#01", "#02", "#03", "04"}
> for k, v in pairs(l) do print(k, v) end
1   #01
2   #02
3   #03
4   04
> for k in next,l do l[k] = l[k]:gsub("#", "") end
> for k, v in pairs(l) do print(k, v) end
1   01
2   02
3   03
4   04

最新更新