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

如何使用JMESPath实现不区分大小写的字符串搜索?

JMESPath 不区分大小写搜索实现方案

需求说明

需要在JSON数组中查找所有包含foo的元素,不区分大小写,示例数组如下:

[
  "foo",
  "foobar",
  "barfoo",
  "bar",
  "baz",
  "barbaz",
  "FOO"
]

原有区分大小写的查询[?contains(@, 'foo')]只能匹配到全小写的结果,会遗漏"FOO"这类大写形式的匹配项。

解决方案

利用JMESPath内置的to_lower()(转全小写)或to_upper()(转全大写)函数,统一待匹配元素和搜索关键词的大小写后再执行包含判断,具体查询语句如下:

[?contains(to_lower(@), to_lower('foo'))]

如果搜索关键词固定为全小写foo,也可以简化为:

[?contains(to_lower(@), 'foo')]

结果验证

执行上述查询后,示例数组的返回结果为:

["foo", "foobar", "barfoo", "FOO"]

完全符合不区分大小写的搜索需求。

扩展场景

如果需要在对象数组中搜索指定字段,例如匹配所有name属性包含foo(不区分大小写)的元素,写法如下:

[?contains(to_lower(name), to_lower('foo'))]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:54:00