You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua如何判断空格分隔的代码字符串是否匹配表中任意元素

Lua实现空格分隔代码串的匹配判断

实现逻辑

整个判断流程分三步完成:

  • 首先将待匹配的代码数组转换为哈希集合结构,把每个待匹配代码作为集合的键,把单元素查找的时间复杂度降到O(1),避免重复遍历匹配表
  • 遍历输入的空格分隔字符串,逐段提取非空格的连续字符(也就是单个代码),自动跳过连续空格、首尾空格的干扰
  • 每提取到一个代码就去哈希集合中查找,只要存在匹配项立刻返回true;所有代码遍历完成仍无匹配则返回false

完整实现代码

function checkCodeMatch(codeSequence, targetCodeList)
    -- 构建匹配用的哈希集合
    local codeSet = {}
    for _, code in ipairs(targetCodeList) do
        codeSet[code] = true
    end

    -- 逐段提取字符串中的非空格代码片段
    for singleCode in string.gmatch(codeSequence, "%S+") do
        if codeSet[singleCode] then
            return true
        end
    end

    return false
end

调用示例

对应给出的测试场景:

local inputStr = "O R LE Pdc"
local targetTable = {"R", "BE", "Cre"}
local result = checkCodeMatch(inputStr, targetTable)
print(result) -- 输出 true,符合预期

实现说明

  • 字符串拆分使用string.gmatch配合模式%S+,相比手动按空格分割的写法,能自动处理多空格、首尾带空格的异常输入场景,不会产生空的无效代码片段
  • 哈希集合的预处理方式在匹配表元素较多、输入字符串较长的场景下性能远高于双层循环遍历的写法,代码扩展性更好

内容的提问来源于stack exchange,提问作者56independent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 01:51:43