Lua在字符串中每4个字符插入一个值

C0n*_*0nk 1 lua

所以我有一个字符串,每 4 个字符我需要插入一个值,如下所示。

local string = "24029400001000000000000000000000"
--insert : every 4 chars

--output
--2402:9400:0010:0000:0000:0000:0000:0000
Run Code Online (Sandbox Code Playgroud)

我正在寻找的输出是2402:9400:0010:0000:0000:0000:0000:0000

function string.chunk( str, n )
    local k, t
    t= { }
    for k in str:gmatch( string.rep( ".", n ) ) do
        table.insert( t, k )
    end
    return t
end

x = "24029400001000000000000000000000"
x_new = ""
for k, v in ipairs( x:chunk( 4 ) ) do
  v = v .. ":"
x_new = x_new .. v
end

print(x_new)

--problem is 2402:9400:0010:0000:0000:0000:0000:0000: the : on the end of string
Run Code Online (Sandbox Code Playgroud)

Dar*_*ius 5

可能的解决方案:

<script src="https://github.com/fengari-lua/fengari-web/releases/download/v0.1.4/fengari-web.js"></script>
<script type="application/lua">

local s = "24029400001000000000000000000000"
s = s:gsub('....','%1:'):gsub(':$','')
print(s)

</script>
Run Code Online (Sandbox Code Playgroud)