如何使用JMESPATH匹配带前缀的字符串?精确匹配有效前缀匹配失效
实现JMESPATH前缀匹配的方法
JMESPATH不支持直接用== 'foo*'这种通配符语法做前缀匹配,要实现以foo为前缀的匹配,需要使用内置的starts_with函数。
正确的JMESPATH语句
针对你的需求,匹配display-name以foo开头的条目,可使用以下语句:
data[?starts_with(`display-name`, 'foo')]
关键说明
starts_with是JMESPATH的内置字符串函数,第一个参数为待检查的字段(由于display-name包含连字符,需要用反引号`包裹),第二个参数是指定的前缀字符串。- 用该语句查询你提供的JSON数据,会准确返回
display-name为foobar的记录。
其他模糊匹配补充
如果有其他匹配需求,还可以使用JMESPATH的其他内置函数:
- 后缀匹配:
ends_with(字段名, '目标后缀') - 包含子串匹配:
contains(字段名, '目标子串')
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

