Groovy/Grails:获取满足正则表达式的键:值对



我有一个映射,并希望获得所有键:值对,其中键匹配正则表达式。我有一个解决方案,我grep keySet()首先他们循环并找到。但一定有一个更简单的解决方案(或者我希望)。

,

def qmap = [name: "hair", style: 'straight', color_1: 'brown', color_2: 'blonde', color_3: 'black']

我想要一个只有颜色的子地图。

def colors = [color_1: 'brown', color_2: 'blonde', color_3: 'black']

我可以通过使用.grep获得键,但这只是给了我键,我需要循环来获得值。

def colorKeys = qmap.keySet().grep(~/^color.*/)

有什么办法吗?

你可以做

qmap.subMap( colorKeys )

真的很简单。只做:

qmap.findAll{ k,v -> k.matches(~/^color.*/) }

最新更新