arrays - Lua单词搜索

标签 arrays lua match cpu-word lpeg

我该如何在 Lua 中进行多重模式搜索? (我已经设置了 Lpeg)。

例如,假设我连续接收字符串,我一次处理一个字符串,将它们大写并调用它们 msg。现在我想获取 msg 并检查它是否具有以下任何模式:MUFFIN MOPHIN MUPHEN M0FF1N 首先。如何检查 msg 是否有其中任何一个(如果不止一个也没关系),而不必编写一个巨大的 if(or or or or)

最佳答案

您可以做的一件事是制作一个要查找的单词表,然后使用 gmatch 迭代字符串中的每个单词并检查它是否在该表中。

#!/usr/bin/env lua

function matchAny(str, pats)
    for w in str:gmatch('%S+') do
        if pats[w] then
            return true
        end
    end
    return false
end

pats = {
    ['MUFFIN']  = true,
    ['MOOPHIN'] = true,
    ['MUPHEN']  = true,
    ['M0FF1N']  = true,
}

print(matchAny("I want a MUFFIN", pats)) -- true
print(matchAny("I want more MUFFINs", pats)) -- false

关于arrays - Lua单词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30282132/

相关文章:

c++ - 初始化一个 constexpr std::array of pairs

arrays - Ruby 数组上的未定义方法 'to_h'

ios - swift数组排序结果问题

linux - 包括 "Force "选项以单击特定包的 "install"按钮

javascript - 如何将变量值与Javascript中的值数组匹配?

Javascript 数组参数问题

mysql - 脚本出现错误

lua - 如何在 redis.call 中使用 Lua 表?

python - 如果条件满足,Pandas Dataframe 找到第一个出现的位置

javascript - 为什么这个正则表达式总是返回 null?