using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Linq;
public class Test
{
public static void Main()
{
var userDic = new Dictionary<string, string> {
{"399969178745962506", "One"},
{"104729417217032192", "Two"}
};
var p = @"<@!?(\d+)>";
var s = "<@399969178745962506> hello to <@!104729417217032192>";
Console.WriteLine(
Regex.Replace(s, p, m => userDic.ContainsKey(m.Groups[1].Value) ?
userDic[m.Groups[1].Value] : m.Value
)
);
Console.WriteLine(
Regex.Replace(s, @"(<@!?)(\d+)>", m => userDic.ContainsKey(m.Groups[2].Value) ?
$"{m.Groups[1].Value}{userDic[m.Groups[2].Value]}>" : m.Value
)
);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwp1c2luZyBTeXN0ZW0uTGlucTsKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciB1c2VyRGljID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IHsKCQkJeyIzOTk5NjkxNzg3NDU5NjI1MDYiLCAiT25lIn0sCgkJCXsiMTA0NzI5NDE3MjE3MDMyMTkyIiwgIlR3byJ9CgkJfTsKCQl2YXIgcCA9ICBAIjxAIT8oXGQrKT4iOwoJCXZhciBzID0gIjxAMzk5OTY5MTc4NzQ1OTYyNTA2PiBoZWxsbyB0byA8QCExMDQ3Mjk0MTcyMTcwMzIxOTI+IjsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgKICAgICAgICAJUmVnZXguUmVwbGFjZShzLCBwLCBtID0+IHVzZXJEaWMuQ29udGFpbnNLZXkobS5Hcm91cHNbMV0uVmFsdWUpID8KICAgICAgICAJCXVzZXJEaWNbbS5Hcm91cHNbMV0uVmFsdWVdIDogbS5WYWx1ZQogICAgICAgIAkpCiAgICAgICAgKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgKICAgICAgICAJUmVnZXguUmVwbGFjZShzLCBAIig8QCE/KShcZCspPiIsIG0gPT4gdXNlckRpYy5Db250YWluc0tleShtLkdyb3Vwc1syXS5WYWx1ZSkgPwogICAgICAgIAkJJCJ7bS5Hcm91cHNbMV0uVmFsdWV9e3VzZXJEaWNbbS5Hcm91cHNbMl0uVmFsdWVdfT4iIDogbS5WYWx1ZQogICAgICAgIAkpCiAgICAgICAgKTsKCX0KCQoJCn0KCg==