如何在 Lua 编程中分割字符串?


分割字符串的过程是指我们传递一个正则表达式或模式,以此将给定的字符串分割为不同的部分。

在 Lua 中,标准库中没有分割函数,但我们可以利用其他函数来做通常分割函数会完成的工作。

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

更新日期: 20-Jul-2021

21K+ 浏览

开启你的 事业

通过完成课程获得认证

开始
广告