使用Groovy查找排除列表中的字符串

时间:2011-12-07 15:40:33

标签: groovy

在groovy中,我想搜索文本(通常是一个xml结构)并找到忽略列表的出现。

例如: 我的不同搜索数据请求是(为了清晰起见而减少,但大多数都很大):

<CustomerRQ field='a'></CustomerRQ>
<AddressRQ field='a'></AddressRQ>

我的忽略列表是:

CustomerRQ
CustomerRS

基于以上两个“客户”和“地址”的传入请求,我想忽略“客户”,因为它在我的忽略列表中,但我想将“地址”识别为命中。

总体意图是使用它进行日志记录。我想不根据我的“忽略”列表记录一些传入请求,但是所有其他请求都将被记录。

这里有一些伪代码可能在正确的轨道上但不是真的。

def list = ["CustomerRQ", "CustomerRS"]
println(list.contains("<CustomerRQ field='a'>"))

我不确定,但我认为在这种情况下闭包会起作用,但在这里学习常规绳索。也许正则表达式也可以正常工作。但重要的是在我的所有排除列表中搜索传入的字符串(indexOf,exists ...)。

1 个答案:

答案 0 :(得分:0)

快速解决方案:

shouldIgnore = list.inject(false) { bool, val -> bool || line.contains(val) }

这是否是最好的主意取决于我们没有的信息;可能更好的做更多的事情 - XMLy而不是检查字符串。