将字符串拆分为两个变量? LUA

在我编写的LUA驱动程序中,我不断接收RS232字符串,例如ZAA1,ZO64,D1等等。我想要一个找到字符串结束和Int开始并将其放入两个不同变量中的解决方案? 我目前正在使用一个while循环和一个string.match方法。有更好的方法吗?当前_缩短_代码如下;

s = "ZO29"
j = 1
while j <= 64 do
    if (s == string.format("ZO%d", j)) then
        print("Within ZO message")
        inputBuffer = ""
        sendACK()
        break

    elseif (s == string.format("ZC%d", j)) then
        inputBuffer = ""
        sendACK()
        break
    end
    j = j + 1
end
点赞
用户107090
用户107090

尝试这样做:

a,b=s:match("(.-)(%d+)$")

这将字符串末尾的数字捕获到 b,并将其前面的文本捕获到 a

2020-09-08 23:35:31