无法在Lua中返回子字符串。

这个 findword 函数是被另一个函数调用的。在下面的函数中,s 包含一个很长的字符串。但是问题是,一旦我在 s:byte 和 s:sub 中使用 ':',它会说 s 是一个没有子节点的叶子节点。我做错了什么?

2.在 Lua 中是否有名为 _isWhite 的函数?如果没有,我应该用什么代替它?

local function findword(s,i)
    local j=i+1
    while not _iswhite(s:byte(j)) and j<#s do
        j=j+1
    end
    return s:sub(i,j),j
end
点赞
用户107090
用户107090

处理字符串中的所有单词,可以尝试以下代码:

for w in s:gmatch("(%S+)") do print(w) end

根据您发布的代码,一个单词只是一系列的非空白字符。

如果您想获得每个单词结束的位置,请试试以下代码:

for w,k in s:gmatch("(%S+)()") do print(w,k-1) end
2014-03-21 16:28:37