Groovy FindAll粗略/喜欢

时间:2013-05-17 13:36:56

标签: groovy findall

我正在尝试在Groovy中执行类似于SQL WHERE NAME LIKE %JOHN%

的操作

这就是我所拥有的:

response.entries = json.entries.findAll { it.name.toUpperCase() =~ /lookupQuery.toString().toUpperCase()/  }

如果我使用==,这是有效的,但我的代码执行LIKE搜索有问题。

2 个答案:

答案 0 :(得分:1)

我认为你需要:

json.entries.findAll { it.name.toUpperCase() ==~ /.*${lookupQuery.toUpperCase()}.*/ }

答案 1 :(得分:1)

问题是lookupQuery没有插入正则表达式中。 但是,在这种情况下,您并不需要使用正则表达式:

json.entries.findAll { it.name.toUpperCase().contains(lookupQuery.toString().toUpperCase()) }