using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var s = "(Price+Discounted_Price)*2-Max.Price";
var dct = new Dictionary<string, string>();
dct.Add("Price", "A1");
dct.Add("Discounted_Price", "A2");
dct.Add("Max.Price","A3");
var res = Regex.Replace(s, @"(?<![\w.])[\w.]+(?![\w.])",
x => dct.ContainsKey(x.Value) ? dct[x.Value] : x.Value);
Console.WriteLine(res);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIHMgPSAiKFByaWNlK0Rpc2NvdW50ZWRfUHJpY2UpKjItTWF4LlByaWNlIjsKCQl2YXIgZGN0ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7CgkJZGN0LkFkZCgiUHJpY2UiLCAiQTEiKTsKCQlkY3QuQWRkKCJEaXNjb3VudGVkX1ByaWNlIiwgIkEyIik7CgkJZGN0LkFkZCgiTWF4LlByaWNlIiwiQTMiKTsKCQl2YXIgcmVzID0gUmVnZXguUmVwbGFjZShzLCBAIig/PCFbXHcuXSlbXHcuXSsoPyFbXHcuXSkiLCAKCQkJeCA9PiBkY3QuQ29udGFpbnNLZXkoeC5WYWx1ZSkgPyAgZGN0W3guVmFsdWVdIDogeC5WYWx1ZSk7CgkJQ29uc29sZS5Xcml0ZUxpbmUocmVzKTsKCX0KfQ==