正则表达式 cron。检测是否低于 5 分钟

Regex cron. Detect if below 5 minutes

我有这个正则表达式:

^\h*(?:(?:\*|[0-9]+)\/0*(?:[0-4]))(?:\s+\*){4}

我有这些 cron 作业字符串:

2,5,8,27,30,36,12,15,18,21,24,39,42 * * * * /bin/echo 0
5,5,8,27,30,36,12,15,18,21,24,39,42 * * * * /bin/echo 0
200,5,8,27,30,36,12,15,18,21,24,39,42 * * * * /bin/echo 0
27,30,36,12,15,18,21,24,39,42 * * * * /bin/echo 0
*/16 * * * * /bin/echo 0
*/13 * * * * /bin/echo 0
*/4 * * * * /bin/echo 0
*/2 * * * * /bin/echo 0
*/3 * * * * /bin/echo 0
110,5,8,27,30,36,12,15,18,21,24,39,42 * * * * /bin/echo 0

上面正则表达式的结果是:

*/4 * * * * /bin/echo 0
*/2 * * * * /bin/echo 0
*/3 * * * * /bin/echo 0

但它没有检测到 运行 低于 4 分钟的其他 cron 作业,如下所示:

2,5,8,27,30,36,12,15,18,21,24,39,42 * * * * /bin/echo 0

所以每 2 分钟、5 分钟、27 等运行秒

我想检测 运行 低于 5 分钟的所有 cron 作业行。

你可以在这里看到我的正则表达式示例:https://regex101.com/r/iJmdvl/1

提前致谢。

试试这个 -

^(\*?\/?[0-4])(?:\s|,)

这里可以测试哪个-

https://regex101.com/r/U1MzYt/1/

这将只匹配每行的第一部分,如果它有条件地包含 */ 并且如果它跟随(或开始)[0-4]。