我希望使用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
因此,如果变量与正则表达式模式之一匹配,则很好,然后结束。如果不是,请继续检查与其他任何模式的匹配,如果找到匹配,则结束。
如果在任何正则表达式中均未找到匹配项,则打印“我们需要警报”。
我希望这很清楚。
谢谢。
答案 0 :(得分:5)
您描述的是逻辑析取或所谓的 OR 。参见Wikipedia article和Programming 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开始的好方法。