Scripting 遍历LUA表以进行字符串匹配

Scripting 遍历LUA表以进行字符串匹配,scripting,lua,add-on,lua-table,Scripting,Lua,Add On,Lua Table,我正在尝试用字符串区分大小写来匹配两个表 范例 [6] = { ["itemName"] = [Ore], ["cleanName"] = [[Iron Ingot]], ["secs"] = 25004, ["gN"] = [[Luminary]], ["

我正在尝试用字符串区分大小写来匹配两个表

范例

[6] = 
                {
                    ["itemName"] =     [Ore],
                    ["cleanName"] = [[Iron Ingot]],
                    ["secs"] = 25004,
                    ["gN"] = [[Luminary]],
                    ["buyer"] = [[@Naptha42]],
                    ["eventType"] = 15,
                    ["timestampz"] = 1399514069,
                    ["quantity"] = 100,
                    ["soldAmount"] = 500,
                    ["seller"] = [[@FataI]],
                },
我正在尝试将项目从上述表格格式移动到新表格中,或将其过滤到列表中

g = e.cleanName 


for k, v in pairs(savedTable.ALL_ITEMS) do searchTable[k] = v
if g == savedTable.ALL_ITEMS.cleanName then
   table.insert(searchTable, savedTable.ALL_ITEMS)
end
end
上面的问题是g never=savedTable

这个表有几千个条目,我试图通过搜索来显示,我认为最好的方法是创建一个新表,其中包含我要查找的值

或者有没有一种方法可以使用string.match遍历表并仅显示(打印)这些值

//更新 我有一个主动搜索,每次用户输入一封信,它都会搜索表格。 实例 Val1=“你好” Val2=“再见” Val3=“你好”

搜索时,用户输入“H”或“H”,我希望显示“hello,hi”的结果,但不显示“再见”

我不确定这是否正确

//更新工作内容的解决方案(感谢ESUI)


如果
ALL_ITEMS
是一个包含表的表,那么它永远不会直接有
cleanName
字段

循环中的
==
是针对
v
的吗

此外,如果
ALL_ITEMS
为整数索引,则您可能希望
ipairs
而不是
pairs
按顺序遍历表

为什么要将每个元素插入
searchTable
(通过
searchTable[k]=v
),然后还要尝试再次插入匹配项(通过
table.insert


如果需要,您可以使用string.match将
g
与循环中的
cleanName
进行匹配,但如果您不比较您认为正在比较的内容,则这并不能解决问题。

对于不区分大小写的比较,您可以执行
if string.lower(val1)=string.lower(val2)
。至于其他方面,你还不清楚你想做什么。你必须清楚地说明你在文章中提到的项目之间的关系。例如
保存表
搜索表
在哪里,它们看起来像什么?谢谢大家的评论。我已经让它工作了。。。还有很长的路要走,但是你的方向帮助了我!
so with the if g == string.match(savedTable.ALL_ITEMS.cleanName)
   local searchForItem = string.lower(g)
    for k, v in ipairs(myTable.ALL_SALES) do
        --        if string.lower(g) == string.lower(v.cleanName) then
        if string.lower(v.cleanName):find(searchForItem) then
            if v.cleanName ~= nil then
                table.insert(searchTable, v)
            end
        end
    end