Как проверить соответствие текста в строке в Lua?

Мне нужно сделать условное значение true, если определенный соответствующий текст найден хотя бы один раз в строке текста, например:

str = "This is some text containing the word tiger."
if string.match(str, "tiger") then
    print ("The word tiger was found.")
else
    print ("The word tiger was not found.")

Как я могу проверить, находится ли текст где-то в строке?

1 ответов


вы можете использовать любой из string.match или string.find. Я лично использую string.find() сам. Также необходимо указать end вашего if-else заявление. Таким образом, фактический код будет выглядеть так:

str = "This is some text containing the word tiger."
if string.match(str, "tiger") then
  print ("The word tiger was found.")
else
  print ("The word tiger was not found.")
end

или

str = "This is some text containing the word tiger."
if string.find(str, "tiger") then
  print ("The word tiger was found.")
else
  print ("The word tiger was not found.")
end

следует отметить, что при попытке соответствия специальным символам (например,.()[]+- etc.), они должны быть экранированы в шаблонах с использованием % символ. Поэтому, чтобы соответствовать, например. tiger(, вызов был быть:

str:find "tiger%("

более подробную информацию о модели можно проверить в Lua - пользователи wiki или и.