You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JMESPath筛选以abc开头、YYYYMMDD-HH格式结尾的Name属性

JMESPath 筛选符合指定格式的Name属性方案

由于JMESPath的ends_with仅支持固定后缀匹配,无法直接适配动态时间格式,我们可以通过字符串截取+格式校验的组合方式实现需求,具体如下:

核心思路

针对abc-YYYYMMDD-HH的格式,拆解为以下校验项:

  • 字符串以abc开头
  • 总长度固定为15位(abc-占4位,YYYYMMDD占8位,-HH占3位,合计4+8+3=15)
  • 第4位和第13位必须是分隔符-
  • 第5-12位为8位数字(对应YYYYMMDD)
  • 第14-15位为00-23之间的两位数字(对应HH)

最终查询语句

--query 'Clusters[?
  starts_with(Name, `abc`) 
  && length(Name) == 15
  && substring(Name, 3, 4) == `-`
  && substring(Name, 12, 13) == `-`
  && matches(substring(Name, 4, 12), `^[0-9]{8}$`)
  && matches(substring(Name, 13, 15), `^[0-9]{2}$`)
  && to_number(substring(Name, 13, 15)) <= 23
].[Name]'

补充说明

  • 若你的JMESPath环境不支持matches函数(部分轻量实现),可以用to_number(substring(xxx)) != null替代数字格式校验,结合长度约束确保格式合规。
  • 若需要严格校验日期的有效性(如月份范围、每月天数),纯JMESPath实现会较为繁琐,建议在后续业务逻辑中补充校验。

内容的提问来源于stack exchange,提问作者user389955

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:37:18