using System.Collections.Generic;
using System.Text.RegularExpressions;
private static Dictionary<string, string> Messages
public static void Main()
Messages = new Dictionary<string, string>();
Messages.Add("abc", "Hello %bca%");
Messages.Add("bca", "world, %cde%%dca%");
Messages.Add("cde", "how are you ");
Messages.Add("dca", "today%edc%");
Messages.Add("edc", "? %message%");
Messages.Add("message", "I'm good, thanks.");
Console.WriteLine(Message("abc"));
private static string Message(string code)
var message = "%" + code + "%";
var matches = new Regex(@"%.[^%]*%").Matches(message);
foreach (Match match in matches)
var matchStr = match.ToString();
code = matchStr.Trim('%');
if (Messages.TryGetValue(code, out replaceStr) && replaceStr != "")
message = message.Replace(matchStr, replaceStr);
return code == message.Trim('%') ? null : message;