我有一张地图,想获得所有键:值对,其中键与正则表达式匹配。我有一个解决方案,我grep for 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.*/)
任何想法如何做到这一点?
答案 0 :(得分:1)
你可以做到
qmap.subMap( colorKeys )
答案 1 :(得分:1)
真的很简单。只是做:
qmap.findAll{ k,v -> k.matches(~/^color.*/) }