Lua - 字符串分割



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

在 Lua 中,标准库中没有内置的 split 函数,但我们可以使用其他函数来完成 split 函数通常执行的工作。

Lua 中一个非常简单的 split 函数示例是使用 **gmatch()** 函数,然后传递我们希望根据其分割字符串的模式。

示例

请考虑以下示例:

main.lua

local example = "lua is great"
for i in string.gmatch(example, "%S+") do
   print(i)
end

输出

lua
is
great

以上示例对于简单的模式可以正常工作,但当我们想要使用正则表达式,并且我们可以使用默认模式进行分割时,我们可以考虑一个更优雅的示例。

示例

请考虑以下示例:

main.lua

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
广告