【发布时间】:2014-06-25 13:55:26
【问题描述】:
我正在尝试按敏感字符串大小写匹配两个表。
例子
[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 = that savedTable。
该表有几千个条目,我正在尝试通过搜索显示,我相信最好的方法是创建一个包含我正在寻找的值的新表?
或者有没有办法使用 string.match 来遍历表并仅显示(打印)这些值。
//更新 我有一个主动搜索,每次用户输入一个字母时,它都会搜索表格。 例子。 Val1 =“你好” Val2 =“再见” Val3 =“嗨”
在搜索并且用户输入“H”或“h”时,我希望显示“hello, hi”的结果,但不显示“goodbye”
so with the if g == string.match(savedTable.ALL_ITEMS.cleanName)
不确定是否正确。
//更新解决方案(感谢 ESOUI)
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
【问题讨论】:
-
对于不区分大小写的比较,您可以使用
if string.lower(val1)==string.lower(val2)。剩下的,你还不清楚你要做什么。 -
您必须清楚地说明您在帖子中提到的项目之间的关系。比如
savedTable和searchTable在哪里,它们长什么样子?
标签: scripting lua add-on lua-table