LUA, 在表格中查找用户输入字符串

已经试了几天了,但是想不出来。下面是具体步骤:

假设有一个本地变量,用户输入1到x个单词, 每个单词都要逐个与包含多个字符串的表格进行比较, 如果所有单词中有一个字符串符合条件,则执行某些操作(将该表格ID的其他字段打印给用户), 如果有一个单词不匹配,则执行其他操作(告诉用户搜索没有结果), 单词不必完全匹配。

点赞
用户4984564
用户4984564

嗯嗯嗯…看起来像是个简单的问题,你可能过度思考或者期望有某种非常简单的方法来解决它,但是(除非你想要使用像lpeg这样的工具),实际上只有一个显而易见的方法:

local function find_words_in_string(str, words)
   for i, word in ipairs(words) do -- 尝试每个单词
      if not str:find(word) then -- 看看它是否在字符串中
         return false -- 如果不在则返回no
      end
   end
   return true
end

如果你想要花哨一点,还可以将其实现为可变的递归函数:

local function find_words_in_string(str, word, ...)
   if word then
      return str:match(word) and find_words_in_string(str, ...)
   else
      return true
   end
end
2019-11-21 07:20:48