Просто сделайте так, чтобы замыкание groupBy извлекало ту часть ключа, по которой вы хотите группировать данные.Здесь я использую регулярное выражение /\d+$/
, чтобы получить цифры в конце ключа.
def map = [
elemA1: "1",
elemB1: "B1",
elemA99: "A99",
elemB99: "B99"
]
map.groupBy { ( it.key =~ /\d+$/ )[0] } // [1:[elemA1:1, elemB1:B1], 99:[elemA99:A99, elemB99:B99]]