如何在 Lua 编程中拆分字符串?
拆分字符串是我们传递正则表达式或模式的过程,通过它可以将给定的字符串拆分为不同的部分。
在Lua中,标准库中没有split函数,但我们可以利用其他函数来完成通常split函数会做的工作。
Lua中拆分函数的一个非常简单的例子是使用该gmatch()函数,然后传递一个我们想要分隔字符串的模式。
示例
考虑下面显示的例子-
local example = "lua is great" for i in string.gmatch(example, "%S+") do print(i) end输出结果
lua is great
上面的示例适用于简单的模式,但是当我们想要使用正则表达式以及我们可以使用默认模式进行拆分的情况时,我们可以考虑一个更优雅的示例。
示例
考虑下面显示的例子-
function mysplit (inputstr, sep) if sep == nil then sep = "%s" end local t={} for str in string.gmatch(inputstr, "([^"..sep.."]+)") do table.insert(t, str) end return t end ans = mysplit("hey bro whats up?") for _, v in ipairs(ans) do print(v) end ans = mysplit("x,y,z,m,n",",") for _, v in ipairs(ans) do print(v) end输出结果
hey bro whats up? x y z m n