小编HKT*_*Lee的帖子

如何使用 JMESPath 使用不区分大小写的正则表达式进行搜索

我需要使用一些使用 JMESPath 来搜索 JSON 的系统。如何搜索具有模式的字符串(像这样)。如何在不区分大小写模式下使用正则表达式执行此操作?

PS:不知道为什么AWS S3 CLI和Ansible使用JMESPath而不是jq来查询JSON。它似乎缺少这些功能,并且自 2017 年以来添加 split 功能的提案已被冻结(就像thisthis)。这些功能jq都可以使用。JMESPath 有何优势使其具有吸引力?

json jq jmespath

22
推荐指数
1
解决办法
6416
查看次数

使用 JMESPath 进行不区分大小写的搜索

问题很简单。如何使用 JMESPath 进行不区分大小写的搜索?

foo假设要在此 JSON 中搜索:

[
  "foo",
  "foobar",
  "barfoo",
  "bar",
  "baz",
  "barbaz",
  "FOO"
]
Run Code Online (Sandbox Code Playgroud)

这是区分大小写的搜索查询:

[?contains(@, 'foo')]
Run Code Online (Sandbox Code Playgroud)

它会返回,["foo", "foobar", "barfoo"]但会错过"FOO"

case-sensitive lowercase jmespath

17
推荐指数
1
解决办法
2663
查看次数

为什么 `rev().rev()` 有效,但 `rev().skip(1).rev()` 无效?

正如标题所示,在 Rust 中,.rev().rev()有效, .rev().skip(1)有效,但.rev().skip(1).rev()无效。下面是演示:

// This compiles
fn main() {
    let s = "Hello!";
    println!("{}", &s.chars().rev().skip(1).collect::<String>());
}
Run Code Online (Sandbox Code Playgroud)
// This compiles
fn main() {
    let s = "Hello!";
    println!("{}", &s.chars().rev().rev().collect::<String>());
}
Run Code Online (Sandbox Code Playgroud)
// This *does not* compile
fn main() {
    let s = "Hello!";
    println!("{}", &s.chars().rev().skip(1).rev().collect::<String>());
}
Run Code Online (Sandbox Code Playgroud)

最后一个无法编译:

// This compiles
fn main() {
    let s = "Hello!";
    println!("{}", &s.chars().rev().skip(1).collect::<String>());
}
Run Code Online (Sandbox Code Playgroud)

操场

有人可以解释为什么会出现这种情况吗?

rust

11
推荐指数
2
解决办法
1005
查看次数

如何用LLDB检查C++对象的实际类?

我现在用Xcode开发Cocos2d-x.但我不知道如何用LLDB检查C++对象的实际类.正如你可以在图片中看到,Xcode的检查员知道实际的类,但p还是po没有.

所以问题是:如何用LLDB检查C++对象的实际类?

LLDB知道实际的班级

xcode lldb cocos2d-x

7
推荐指数
1
解决办法
3366
查看次数

如何使RACSignal变热?

ReactiveCocoa可以通过调用它将信号转换为"热"信号-subscribeCompleted:.但我认为如果你不关心结果(即没有订阅者),这种方法就相当冗长.

RACDisposable *animationDisposable = [[self play:animation] subscribeCompleted:^{
    // just to make the animation play
}];
Run Code Online (Sandbox Code Playgroud)

而这三行并不足以表达我的意图.

有类似目的的方法吗?谢谢!

macos objective-c reactive-programming ios reactive-cocoa

5
推荐指数
1
解决办法
3582
查看次数

命名函数和匿名函数(Lua)之间的差异

这些myFuncs 之间有什么区别?

代码1

function wrapper()
    local someVariable = 0;
    function myFunc(n)
        if n > 0 then return myFunc(n-1) end
    end
    return myFunc;
end
Run Code Online (Sandbox Code Playgroud)

代码2

function wrapper()
    local someVariable = 0;
    local myFunc = function(n)
        if n > 0 then return myFunc(n-1) end
    end
    return myFunc;
end
Run Code Online (Sandbox Code Playgroud)

代码3

function wrapper()
    local someVariable = 0;
    local myFunc;
    myFunc = function(n)
        if n > 0 then return myFunc(n-1) end
    end;
    return myFunc;
end
Run Code Online (Sandbox Code Playgroud)

因为当我myFuncmyFunc自己内部引用函数名称时.他们的行为不一样.(例如,upvalue someVariable......有问题:-S)

lua functional-programming

4
推荐指数
1
解决办法
197
查看次数

OCaml优化技术

我是OCaml的新手(在Haskell中有一些先验知识).我想说服自己采用OCaml.因此,我试图比较C和OCaml之间的性能.我写了以下天真的蒙特卡罗Pi-finder:

C版

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char * argv[]) {

    const int N = 10000000;
    const int M = 10000000;

    int count = 0;
    for (int i = 0; i < N; i++) {
        double x = (double)(random() % (2 * M + 1) - M) / (double)(M);
        double y = (double)(random() % (2 * M + 1) - M) / (double)(M);
        if (x * x + y * y <= 1) {
            count++;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

optimization performance ocaml functional-programming

3
推荐指数
1
解决办法
600
查看次数

在正则表达式替换中匹配最长字符串的保证方法

由于某种原因,我需要通过使用替换从某个任意列表生成正则表达式。

假设用户可以输入"cat""dog"并且"!@[]",它将生成"cat|dog|!@\\{\\}"

问题是,当多个输入包含公共前缀时,我可以使 re 匹配最长的术语吗?

例如:

"god", "godspeed","godzilla"将生成"god|godspeed|godzilla"

如果有多个匹配项,我希望它匹配最长的术语。那是匹配"godspeed"而不是"god"如果我用来re.finditer()匹配字符串"godspeeding"

我在 Python 3.7.1 中尝试过,它似乎根据正则表达式中的顺序报告匹配项。如果这总是正确的,我可以在将输入转换为正则表达式之前对输入(wrt 长度)进行排序。

但是,我找不到有关此行为的任何文档,并且不确定将来是否会改变。

python regex

3
推荐指数
1
解决办法
2431
查看次数

在ReactiveCocoa中,是否存在subscribeNext和subscribeCompleted的约定?

如题,有没有任何约定subscribeNext,并subscribeCompleted在ReactiveCocoa?

我知道这subscribeNext可以让你传递一个对象但不能传递subscribeCompleted.但我想更多地了解语义差异.

例如,如果我实现一个计时器RACSignal,我应该使用(sendNextsendCompleted)什么方法?或者我应该打电话给他们两个?

谢谢 ;-)

objective-c reactive-programming reactive-cocoa

2
推荐指数
1
解决办法
369
查看次数

没有括号的动态内存分配

我需要在不使用括号的情况下重写此代码.

#include <iostream>

using namespace std;

struct struct_set
{
    unsigned long long number;
    struct_set *next;
};

int main()
{
    struct_set s1[100];
    int a,n=1;
    cin >> a;
    s1[0].number = a;
    s1[0].next = NULL;
    cin >> a;
    while(a!=0)
    {
        s1[n].number = a;
        s1[n-1].next = &(s1[n]);
        cin >> a;
        ++n;
    }
    for(int i = 0; i < n; ++i)
    {
        cout << s1[i].number << " ";
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我将数组的大小设置s1为但我不知道这个数字.在练习写的是:完全随机的量,其数的值是不超过2至31的动力,我可以使用iostream,cstdiostdio.h库.没有模板.

有谁知道怎么做?

谢谢.

c++

-8
推荐指数
1
解决办法
556
查看次数