Cron regex buddy
用中文解释或生成 cron 表达式与正则表达式,逐字段/逐组讲清含义并给出匹配示例。触发词:'/cron-regex-buddy'、'解释这个 cron'、'帮我写个正则'、'这个正则什么意思'、'生成一个 cron'。Use when the user wants to explain or generate cron expressions or regular expressions in Chinese.From its SKILL.md
npx -y skills add YuAICode/ai-skills --skill cron-regex-buddyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 2 commands, including `bash <skill>/bin/validate.sh cron "<表达式>"` and 1 more.
SKILL.md
6.1 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it
cron-regex-buddy — cron 与正则中文向导
把看不懂的 cron 表达式或正则表达式讲清楚,或者把中文需求翻译成正确的 cron / 正则,并自检合法性。
何时触发
用户说:
/cron-regex-buddy- "解释这个 cron:
0 9 * * 1-5" - "这个正则什么意思:
^\d{3}-\d{4}$" - "帮我写个匹配手机号的正则"
- "我想每天早上 9 点跑一次,cron 怎么写"
- "生成一个 cron 表达式" / "cron 怎么填"
- "这个表达式对吗"
两种工作模式
模式 A:解释模式
用户给出一个 cron 或正则 → 逐段拆解,中文讲清每部分含义,并给出具体匹配示例。
流程:
-
判断输入是 cron 还是正则(或两者都有)。
-
先用
bin/validate.sh自检:bash <skill>/bin/validate.sh cron "<表达式>" bash <skill>/bin/validate.sh regex "<模式>"若 exit 2,把错误原因中文报给用户,不继续解释。
-
解释 cron 时按字段顺序逐一说明:
字段 位置 含义 分钟 1 0–59 小时 2 0–23 日 3 1–31 月 4 1–12 星期 5 0–7(0 和 7 均为周日) 秒(可选) 6 0–59,仅部分调度器支持 常用符号说明:
*任意值、,多值列举、-范围、/步进、?日/星期互斥占位(Quartz 风格)、L最后一天、#第 N 个星期 X。 -
解释正则时按从左到右逐组/逐字符说明,并给出 2–3 个匹配示例与 1–2 个不匹配示例。
-
时区提醒:解释 cron 时指出"cron 以服务器本地时区为准,未指定时区时请确认系统时区设置。"
输出格式(cron 示例):
表达式:0 9 * * 1-5
逐字段解释:
- 分钟:0 → 整点(第 0 分)
- 小时:9 → 早上 9 点
- 日: * → 每天
- 月: * → 每月
- 星期:1-5 → 周一到周五
含义:每个工作日(周一至周五)早上 9:00 执行。
匹配时刻示例:2026-06-08 09:00(周一)、2026-06-09 09:00(周二)
不触发时刻:2026-06-06 09:00(周六)、2026-06-08 09:30(非整点)
⚠️ 时区:cron 以服务器本地时区为准。如需北京时间请确认 TZ=Asia/Shanghai。
输出格式(正则示例):
表达式:^\d{3}-\d{4}$
逐组解释:
- ^ → 字符串开头锚点
- \d{3} → 恰好 3 位数字(0–9)
- - → 字面连字符
- \d{4} → 恰好 4 位数字
- $ → 字符串结尾锚点
匹配示例:123-4567、000-9999
不匹配示例:12-4567(首段只有 2 位)、123-456a(含字母)
引擎说明:\d 在 PCRE/Python/JS 中等同 [0-9];在 POSIX ERE(grep -E)中无效,须改用 [0-9]{3}-[0-9]{4}。
模式 B:生成模式
用户用中文描述需求 → 产出 cron 或正则 + 解释 + 注意事项。
流程:
- 明确需求:时间规律(cron)还是文本匹配规则(正则)?二义时先问清楚。
- 生成表达式。
- 立刻用
bin/validate.sh自检,若失败说明原因并修正后再给出。 - 按模式 A 的格式完整解释生成结果。
- 输出注意事项:
cron 注意事项清单(按需挑选相关项):
- 时区:明确指出基于哪个时区,如需特定时区给出设置方式(如
TZ=Asia/Shanghai)。 - 星期 0/7 差异:不同调度器(Linux crontab / Quartz / AWS EventBridge)对 0=周日或 7=周日的处理可能不同,需确认。
- 6 段 vs 5 段:Quartz/Spring 支持 6 段(含秒),标准 POSIX crontab 只有 5 段。
- 月底陷阱:
30日在 2 月不存在,L才表示"月末最后一天"。 - 分钟与小时顺序:新手常把分钟和小时写反。
正则注意事项清单(按需挑选相关项):
- 引擎差异:PCRE / Python
re/ JavaScript / POSIX ERE 对\d\w\s等支持不同。 - 贪婪 vs 非贪婪:
.*默认贪婪,.*?才是非贪婪。 - 转义:在某些语言中正则字符串本身需要双重转义(如 Java
\\d)。 - 锚点:没有
^$的模式是"包含匹配"而非"完整匹配"。 - Unicode:
\d在部分引擎中匹配全角数字,如需限制请用[0-9]。
输出格式(生成模式):
需求:每周一凌晨 2:30 执行
生成结果:
cron:30 2 * * 1
逐字段解释:(同模式 A)
注意事项:
- 星期字段 1 = 周一(Linux crontab 约定;Quartz 中 1 = 周日,请按调度器文档确认)。
- 时区以服务器本地时区为准。
硬规则
- 先 validate,后解释/给出:生成或解释任何表达式前,必须先跑
bin/validate.sh自检。exit 2则停下报错,不继续输出。 - 不确定语义必须说明:如 cron 星期 0/7 差异、正则引擎差异等,不能悄悄选一个当成通用。
- 只输出已确认合法的表达式:validate 通过后再输出,同时附完整解释。
- 不臆造:没把握的引擎特性/平台行为,明确说"请查阅 XX 文档确认"。
- 全程中文:解释/注意事项用简体中文;cron 表达式/正则本身保持原样;命令行示例保持英文。
bin 脚本
# 校验 cron(5 或 6 段,粗校验字符)
bash <skill>/bin/validate.sh cron "0 9 * * 1-5"
# 校验正则(用 grep -E 干跑)
bash <skill>/bin/validate.sh regex "^\d{3}-\d{4}$"
exit 0 = 合法;exit 2 = 非法,附中文错误信息;exit 1 = 用法错误。
边界
- cron 校验是粗校验(字段数 + 字符白名单),不做语义校验(如"分钟最大 59")。语义层面的合理性由 Claude 判断并在解释中说明。
- 正则校验基于 POSIX ERE(
grep -E)。若用户目标引擎是 PCRE/Python/JS,校验通过不代表在那些引擎中完全合法,需额外提示。 - 不执行用户给出的正则以匹配真实数据,只做合法性干跑。
What ships with it: 3 files
7.3 KB alongside SKILL.md, 2 of them executable
bin/
- validate.shruns2.9 KB
tests/
- run.shruns2.8 KB
- README.md1.5 KB