gpt4 book ai didi

php - JMESPATH 可以执行 "contains X or Y"搜索/过滤吗?

转载 作者:行者123 更新时间:2023-12-05 02:05:17 28 4
gpt4 key购买 nike

是否可以使用 contains 将下面的 preg_match 搜索移动到 JMESPATH 搜索过滤器中?我在 JMESPATH tutorial 中找到了 contains 的示例,但我不确定语法是否支持使用 OR 以某种方式组合过滤器字符串。

  $s3_results = $s3_client->getPaginator('ListObjects', ['Bucket' => $config['bucket']]);
// Narrow S3 list down to files containing the strings "css_" or "js_".
foreach ($s3_results->search('Contents[].Key') as $key) {
if (preg_match("/(css_|js_)/", $key)) {
$s3_keys[] = $key;
}
}

最佳答案

假设文档的格式如下:

{
"Contents": [
{
"Key": "some/path/css_example",
...
},
{
"Key": "another/path/js_example",
...
},
{
"Key": "blah/blah/other_example",
...
}
]
}

(我会检查,但我手头没有 AWS 凭证,而且很难找到 S3 列表对象响应的 JSON 格式示例。)

尝试查询:

Contents[].Key|[?contains(@, 'css_') || contains(@, 'js_')]

在这种情况下,Contents[].Key 仅选择键(如您的示例所示)。管道 | 用于重置投影,以便我们对整个列表进行操作,而不是分别对每个键进行操作。 [?...] 过滤列表以仅选择满足 bool 条件的键。 contains 函数可以以多种方式使用,但我们在这里使用它来查看第一个参数,作为字符串(@,列表中的当前项)是否包含第二个参数,我们正在搜索的子字符串。我们将 contains 函数的两种用法与 or 运算符 || 相结合,以便如果 either 条件为真,则项目匹配。

关于php - JMESPATH 可以执行 "contains X or Y"搜索/过滤吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63689083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com