我想从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表达式。
毕竟我最终得到了这个不完美但有效的解决方案:
/((?<=^|\s)\*\/?\d*|(?<=^|\s)\d+(?=\s)|(?<=^|\s)\d+(?:\,\d+)+)/g
我知道它没有涵盖完整的crontab表达式语法。它也会匹配输入行后面的片段,但我认为通常不会有任何分离的数字/星号。如我错了请纠正我。