正则表达式匹配cron表达式

问题描述 投票:-1回答:1

我想从crontab行中提取cron表达式。我尝试了2个正则表达式(pcre php):

^(.*?)(?=[a-zA-Z])

..适用于*/1 * * * * wget --spider ...

^(.*?)(?=\/[a-zA-Z])

..适用于*/1 * * * * /my/path/ ...

我也尝试将两者结合起来:

^(.*?)(?=\/[a-zA-Z])|(?=[a-zA-Z])

......但是这也抓住了样本1中的“wget”。我不想匹配确切的表达式*/1 * * * *,这只是一个样本。它必须适用于任何cron表达式。

regex cron
1个回答
0
投票

毕竟我最终得到了这个不完美但有效的解决方案:

/((?<=^|\s)\*\/?\d*|(?<=^|\s)\d+(?=\s)|(?<=^|\s)\d+(?:\,\d+)+)/g

我知道它没有涵盖完整的crontab表达式语法。它也会匹配输入行后面的片段,但我认为通常不会有任何分离的数字/星号。如我错了请纠正我。

© www.soinside.com 2019 - 2024. All rights reserved.