【问题标题】:Lua - Nested if statementsLua - 嵌套 if 语句
【发布时间】:2019-05-08 22:31:25
【问题描述】:

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

所以,如果变量匹配正则表达式模式之一,很好,然后结束。如果没有,继续检查是否与任何其他模式匹配,再次,如果找到匹配则结束。

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

我希望这已经足够清楚了。

谢谢。

【问题讨论】:

    标签: if-statement lua


    【解决方案1】:

    你描述的是逻辑析取或所谓的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 开始的好方法。

    【讨论】:

    • 我感觉术语弄错了,又学到了一课!谢谢。
    猜你喜欢
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多