我正在运行基于exetime的脚本,exetime以下列格式保存在数据库中。
* * * * * *
| | | | | |
| | | | | +-- Year (range: 1900-3000)
| | | | +---- Day of the Week (range: 1-7, 1 standing for Monday)
| | | +------ Month of the Year (range: 1-12)
| | +-------- Day of the Month (range: 1-31)
| +---------- Hour (range: 0-23)
+------------ Minute (range: 0-59)
现在我需要用当前的
检查exetimeM.H.DofM.MofY.DofW.Y
每个字段可以有两个可能,它可以是相应的字段,也可以是“*”。什么是最好的方式,两个检查这个模式与所有组合,每个领域有两种可能性。
答案 0 :(得分:0)
这是我认为的正则表达式:
([0-5]?[0-9]|\*)\.([0-1]?[0-9]|2[0-3]|\*)\.([1-2]?[0-9]|3[0-1]|\*)\.([0-9]|1[0-2]|\*)\.([1-7]|\*)\.(19[0-9][0-9]|2[0-9]{3}|3000|\*)
让我们逐一解释这一部分,|
等于"和"我的解释;所有部分都由\.
分开,这是"。"
([0-5]?[0-9]|\*)
将匹配0到59之间的所有数字或*
这(与其他人一样)将允许您使用00
([0-1]?[0-9]|2[0-3]|\*)
将匹配0到19和20到23之间的所有数字或*
([1-2]?[0-9]|3[0-1]|\*)
将匹配0到29之间以及30到31之间的所有数字或*
([0-9]|1[0-2]|\*)
轻松一个;从0到9或从10到12或*
([1-7]|\*)
匹配1到7或*
(19[0-9][0-9]|2[0-9]{3}|3000|\*)
匹配1900年至1999年以及2000年至2999年和3000年或*
这是一个例子: https://regex101.com/r/Orlp3o/2
我让你测试一些;)
好吧,我编辑我的答案是为了添加@Mark Baker一个, https://github.com/mtdowling/cron-expression
现在您可以选择要使用的那个;)