Lua-嵌套if语句

时间:2019-05-08 13:24:59

标签: if-statement lua

我希望使用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

因此,如果变量与正则表达式模式之一匹配,则很好,然后结束。如果不是,请继续检查与其他任何模式的匹配,如果找到匹配,则结束。

如果在任何正则表达式中均未找到匹配项,则打印“我们需要警报”。

我希望这很清楚。

谢谢。

1 个答案:

答案 0 :(得分:5)

您描述的是逻辑析取或所谓的 OR 。参见Wikipedia articleProgramming in 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中有可用的模式。您可以在Programming in Lua 20.2中阅读它们。

在您提出问题之前,我强烈建议您学习基础知识并至少进行最少的研究。 Programming in Lua在线可用,这是从Lua开始的好方法。