Regex 使用正则表达式筛选的JsonPath表达式

Regex 使用正则表达式筛选的JsonPath表达式,regex,json,jsonpath,Regex,Json,Jsonpath,我们正在使用一个工具,该工具使用jayway库来评估JSONpath表达式Javascript似乎无法使用它。在这种情况下,如何在JSONPath中使用正则表达式。例如,在下面的示例中,我想筛选所有书名中包含“剑”一词的书名: 您可以使用捕获组或查找断言 "title":\s*"([^"]*\bSword\b[^"]*)" 如有必要,添加不区分大小写的修饰符i。从组索引1中获取标题字符串 使用Ruby正则表达式操作符: $.store.book[?(@.title =~ /^.*Sword.*

我们正在使用一个工具,该工具使用jayway库来评估JSONpath表达式Javascript似乎无法使用它。在这种情况下,如何在JSONPath中使用正则表达式。例如,在下面的示例中,我想筛选所有书名中包含“剑”一词的书名:


您可以使用捕获组或查找断言

"title":\s*"([^"]*\bSword\b[^"]*)"
如有必要,添加不区分大小写的修饰符
i
。从组索引1中获取标题字符串

使用Ruby正则表达式操作符:

$.store.book[?(@.title =~ /^.*Sword.*$/)]
要忽略案例:

$.store.book[?(@.title =~ /^.*sword.*$/i)]

作为记录,Goessner的javascript JSONpath中的条件正则表达式的一个解决方法是按如下方式编写查询:

$.store.book[?(/^.*sword.*$/i.test(@.title))]
请看这里
对于JS库中的“=~”语法。

我会找到一个解决方法,而不是尝试使用正则表达式。我在类路径中使用json-path-0.9.0(因为工具内部使用版本0.9)和语句对象result=JsonPath.read(jsonStr,query)尝试了上述表达式;其中,jsonStr是上述示例中共享的。结果是在1.2.0.Nice中添加了一个空的setRegex支持。如果我想获取所有以title开头的键的值,我该如何编写它呢?
$.store.book[?(/^.*sword.*$/i.test(@.title))]