Lua-嵌套if语句

gre*_*age 0 lua if-statement

我正在寻找使用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
Run Code Online (Sandbox Code Playgroud)

因此,如果变量与正则表达式模式之一匹配,则很好,然后结束。如果没有,继续前进并检查是否与其他任何模式都匹配,如果找到匹配项则结束。

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

我希望这很清楚。

谢谢。

Gre*_*een 5

您所描述的是逻辑析取或所谓的OR。请参阅Wikipedia文章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
Run Code Online (Sandbox Code Playgroud)

假设您实际上已regexp实现,仅此而已。如果否,则在Lua中有可用的模式。您可以在Lua 20.2编程中阅读有关它们的信息。

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