C#: token replacement using regex

Here comes an easy way to replace tokens in a given string using plain C# regex's.

        static string ReplaceTokens(string template, Dictionary<string, string> replacements)
            var rex = new Regex(@"\${([^}]+)}");
            return(rex.Replace(template, delegate(Match m)
                string key = m.Groups[1].Value;
                string rep = replacements.ContainsKey(key)? replacements[key] : m.Value;

        static void Main(string[] args)
            Dictionary<string, string> dict = new Dictionary<string,string>();
            dict.Add("username", "pepino");
            dict.Add("usermail", "pepe@yahoo.com");
            Console.WriteLine(ReplaceTokens("hi ${username}! I am ${username}. Email me to ${usermail}. And this token won't be replaced: ${unknown}.", dict));

Above will output: "hi pepino! I am pepino. Email me to pepe@yahoo.com. And this token won't be replaced: ${unknown}."