使用正则表达式的Jenkins API树过滤器?

时间:2013-10-10 14:05:06

标签: json jenkins hudson

我正在使用树参数来过滤从API返回的JSON数据,并且效果很好。我的问题是我需要从数组中获取一些我不关心的东西的特定数据。我想知道是否有一种方法,使用树命令,使用正则表达式或包含字符串进行过滤?

例如,要给我回复所有以MyProject开头的文件名:

   http://myapi.com?tree=fileName=MyProject*

2 个答案:

答案 0 :(得分:1)

正则表达式非常适合常规语法。

树往往遵循context free grammars。使用支持上下文感知操作的语言(例如 XPath )可能会做得更好。是的,一些非常简单的项目可能没有 XPath 的额外功能;但是,一旦你踩到一个超出常规语法可能范围的用例(它们只支持一小部分可以搜索的内容),用手中的工具完成搜索几乎是不可能的。

如果您想了解常规语法是如何有限制的,请研究the pumping lemma,然后深入思考它的含义。 A quick brush-up on parsing theory might also be useful。你反对数学,包括数学部分,包括逻辑运算。这不是一个难以解决的问题,已经证明正则表达式不能与无上下文语法匹配。

如果您对更快完成工作更感兴趣。我建议您先阅读XPath并尝试利用已有的工具之一,或者至少将其作为树匹配工作的指南。

答案 1 :(得分:1)

我发现使用不使用JSON而是切换到XML,您可以使用XPATH进行过滤。查找名称以“Test”开头的所有工作网址的示例如下:

Handler2