1

我正在从一个网站挖掘信息,我必须做的一件事就是将一条信息从页面给我的信息变成另一条信息,然后将第二条信息变成一个变量。但是,我根本想不出办法来做到这一点。

鉴于下表:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}

...当我这样做时,我怎么能做到这一点:

adj = string.match(page,'Adjective: (%w+)')

...它匹配big,我可以返回的值tall但把它变成一个表?我试过使用一个不起作用的函数,我不想做类似的事情,t[adj]={}因为我不想制作t.

我觉得它正盯着我的脸,但我画的是一个空白。

编辑澄清:

我知道如何获得我需要的形容词,或者如何显示大的价值等。我所说的是能够做到这一点:

  1. 根据找到的形容词查找值。在这种情况下,big被发现,值为tall
  2. 取找到的值(同样,在本例中为tall)并将该值转换为自己的表。然后我会得到上面的表格,还有一个尚未填充的新表格,称为tall. 这样,在我用信息填充它之后,我可以通过tall["somekeyvalue"]

现在是不是有点意思了?

4

3 回答 3

1

在我看来,当你匹配一个形容词时,你想在你的表中查找它并返回你在那里得到的任何别名。

要在 lua 中执行此操作,您将使用[]查找表:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}
adj = string.match(page,'Adjective: (%w+)')
print(t[adj])

如果它与 中的“形容词:大”匹配page,它将打印tall. 这是你想要的吗?关于“把它变成一张桌子”的部分让我感到困惑。

于 2012-02-17T10:08:42.900 回答
1

如果您不介意全局变量,可以使用全局环境表。

获得价值后(通过 t[adj]),您可以像这样创建表格:

_G[t[adj]] = {}

然后,您将能够在任何地方访问高桌子

于 2012-02-17T20:35:02.360 回答
0

由于我不知道如何在 Lua 中创建动态变量,我可以建议您创建一个表,该表将作为您创建的其他表的容器,因此您可以像“result.tall”这样通过引用来使用它,这将成为一张包含您添加到其中的元素的表格。

看看这个例子:

-- you have to initialize it
result = {}
result.tall = {}
result.little = {}

--insert the elements that can be another tables or not
table.insert (result.tall, 'enormous')
table.insert (result.little , {s = 'short'})

-- so you can access it later
for k,v in pairs(result.tall) do
    print(k,v)
end
于 2012-02-17T12:21:03.423 回答