String supplant(String o,map) { RegExp r = RegExp(r"{([^{}]+)}"); return o.replaceAllMapped(r,(match){ //print('matched;${match.group(1)}'); return '${map[match.group(1)]}'; }); } main(){ print(supplant('hello,{person},i will {do} u',{'person':'julie','do':['love','then','touch']})); }