Значение таблицы Lua в переменную после получения текстового сообщения - PullRequest
0 голосов
/ 03 июня 2018
local table =
{
one = {"one", "two", "three"},
two = {"four", "five", "six"},
three = {"seven", "eight", "nine"},
}

Я получаю строковые данные, которые содержат одно из слов в таблице выше.Я хочу поместить это подходящее слово в переменную, скажем, «х».

Итак, допустим, одно из сообщений является случайным и сгенерировано на этот раз: «Это первый день и его ветрено».Я хочу хранить «один» в переменной х.Но после того, как я получил «два дня и солнечно», я хочу, чтобы х было два.Также после получения этого набора переменных мне нужно уточнить, из какой таблицы было взято «один», «два» или «три».

1 Ответ

0 голосов
/ 03 июня 2018

Я не уверен, правильно ли я понимаю, что вам нужно, но проверьте эту функцию.

local table =
{
one = {"one", "two", "three"},
two = {"four", "five", "six"},
three = {"seven", "eight", "nine"},
}


local x = nil
local tab = nil
local sentence_1 = 'Now its day six and its sunny'
local sentence_2 = 'Now its day two and its sunny'


function search_word(sentence, words_table)  
  for key, words in pairs(words_table) do
      for _, word in pairs(words) do
          if string.match(sentence, word) then
            return word, key
          end
      end
  end    
end

x, tab = search_word(sentence_1, table)

print(x, tab)
-- six  two

x, tab = search_word(sentence_2, table)

print(x, tab)
-- two  one

search_word функция принимает два аргумента: предложение и вашу таблицу со словами, а функция возвращает два значения - первое - это слово, которое было найдено, а второе - таблица, содержащая это слово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...