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

LUA,在表中查找用户输入字符串,lua,Lua,几天来我一直想自己弄到这个,但没办法了。 事情是这样的 期望用户在局部变量中输入1到x个单词, 每个单词都必须与一个包含多个字符串的表进行比较,一次一个字符串, 如果其中一个字符串的所有单词均为true,则执行某些操作(它将向用户打印该表ID的其他字段),或者如果缺少其中一个单词,则执行另一个操作(只需告诉用户搜索未返回任何结果) 单词不必完全匹配。嗯。。。听起来这是个简单的问题,你可能想得太多了,或者期待有一种非常简单的方法来解决,但是(除非你想使用lpeg之类的工具),有一种很明显的方法:

几天来我一直想自己弄到这个,但没办法了。 事情是这样的

期望用户在局部变量中输入1到x个单词, 每个单词都必须与一个包含多个字符串的表进行比较,一次一个字符串, 如果其中一个字符串的所有单词均为true,则执行某些操作(它将向用户打印该表ID的其他字段),或者如果缺少其中一个单词,则执行另一个操作(只需告诉用户搜索未返回任何结果)
单词不必完全匹配。

嗯。。。听起来这是个简单的问题,你可能想得太多了,或者期待有一种非常简单的方法来解决,但是(除非你想使用lpeg之类的工具),有一种很明显的方法:

local函数在字符串中查找单词(str,words)
对于我来说,ipairs(单词)中的单词确实--尝试每个单词
如果不是str:find(word)然后——看看它是否在字符串中
return false——如果不是,就说no
结束
结束
返回真值
结束

如果您想变得更有趣,还可以将其实现为递归变量函数:

local函数在字符串中查找单词(str,word,…)
如果有话
返回str:match(word)并在字符串(str,…)中查找单词
其他的
返回真值
结束
结束

你在找这样的东西吗?感觉您对预期输出的问题不清楚: