Lua - вложенные операторы if - PullRequest
0 голосов
/ 08 мая 2019

Я проверяю правильность нескольких имен файлов в папке, используя LUA.

Я могу получить имена файлов, передаваемые в виде переменных (определяемых как a.message), и мне нужен сценарий для запуска всех шаблонов регулярных выражений, и если он не соответствует ни одному из них, выведите «Нам нужен сигнал тревоги» .

a = alarm.get ("GF91908920-49330")

   if regexp (a.message,"/CCF_[0-9]{6}_[0-9]{2}.csv/") then 

     if regexp (a.message,"/Issues_[0-9]{4}-[0-9]{2}-[0-9]{2}.csv/") then

        if regexp (a.message,"/POL_Operator_[0-9]{6}_[0-9]{2}.csv/") then 

        else print ("We need an alarm - ", a.message)

end
end
end

Итак, если переменная соответствует одному из шаблонов регулярных выражений, отлично, тогда end. Если нет, продолжайте и проверьте на совпадение с любым из других образцов, снова, заканчивая, если совпадение найдено.

Если среди регулярных выражений совпадений не найдено, выведите «Нам нужен сигнал тревоги».

Надеюсь, это достаточно ясно.

Спасибо.

1 Ответ

5 голосов
/ 08 мая 2019

То, что вы описали, является логическим разделением или так называемым ИЛИ . См. статью в Википедии и Программирование на Lua 3.3 .

a = alarm.get("GF91908920-49330")

if regexp(a.message, "/CCF_[0-9]{6}_[0-9]{2}.csv/") or
   regexp(a.message, "/Issues_[0-9]{4}-[0-9]{2}-[0-9]{2}.csv/") or
   regexp(a.message, "/POL_Operator_[0-9]{6}_[0-9]{2}.csv/") then
       -- do something
else
   print("We need an alarm - ", a.message)
end

Предположим, что вы на самом деле реализовали regexp, вот и все. Если нет, в Lua есть доступные шаблоны. О них вы можете прочитать в Программирование на Lua 20.2 .

Я настоятельно рекомендую изучить основы и провести хотя бы минимальное количество исследований, прежде чем задать вопрос. Программирование на Lua доступно онлайн, и это отличный способ начать с Lua.

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