首页 > 解决方案 > 如何在 Groovy 数组中查找 %?

问题描述

给定下面的 Groovy 数组(注意 %):

def list = ["H 11 * * * % env=TEST;state=UP"]

有没有办法检查数组元素是否包含 %?

我尝试了 Groovy 的“find”、“findAll”和“any”方法的各种组合,但这些只匹配整个字符串,而不是其中的单个字符。

grep 似乎是解决方案,但是当我尝试这样的事情时:

def name = list.grep(~/%/)
println(name)

它只是打印 []。

我想测试 % 是否出现在数组元素的任何位置。

标签: groovy

解决方案


grep可以像你一样用来过滤数组。它将返回符合条件的所有元素。

唯一的问题是您使用的正则表达式应该~/.*%.*/代替~/%/.


顺便说一句,findAll也可以像 grep 一样工作:

list.findAll { s -> s ==~ /.*%.*/ }​

运算符==~是正则表达式的匹配器。


如果您只是想获得一个真实的(真/假),检查是否至少有一个元素符合条件,any也可以:

list.any { s -> s ==~ /.*%.*/ }​

推荐阅读