using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var dct = new Dictionary<string, string>();
dct.Add("bla", "boo");
dct.Add("bla test", "ZZZ");
var pat = $@"\b(https://\S+|www\.\S+)|(?:{string.Join("|",dct.Keys.Select(k => Regex.Escape(k)).OrderByDescending(x => x.Length))})";
Console.WriteLine(pat);
var input ="bla bla test test1 test3. Go to www.something.com/bla/something";
var output = Regex.Replace(input, pat, m => m.Groups[1].Success ? m.Groups[1].Value : dct[m.Value]);
Console.Write(output);
//var output = "boo boo test test1 test3...";
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBkY3QgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKCQlkY3QuQWRkKCJibGEiLCAiYm9vIik7CgkJZGN0LkFkZCgiYmxhIHRlc3QiLCAiWlpaIik7CgkJdmFyIHBhdCA9ICRAIlxiKGh0dHBzOi8vXFMrfHd3d1wuXFMrKXwoPzp7c3RyaW5nLkpvaW4oInwiLGRjdC5LZXlzLlNlbGVjdChrID0+IFJlZ2V4LkVzY2FwZShrKSkuT3JkZXJCeURlc2NlbmRpbmcoeCA9PiB4Lkxlbmd0aCkpfSkiOwoJCUNvbnNvbGUuV3JpdGVMaW5lKHBhdCk7CgkJdmFyIGlucHV0ID0iYmxhIGJsYSB0ZXN0IHRlc3QxIHRlc3QzLiBHbyB0byB3d3cuc29tZXRoaW5nLmNvbS9ibGEvc29tZXRoaW5nIjsKCQl2YXIgb3V0cHV0ID0gUmVnZXguUmVwbGFjZShpbnB1dCwgcGF0LCBtID0+IG0uR3JvdXBzWzFdLlN1Y2Nlc3MgPyBtLkdyb3Vwc1sxXS5WYWx1ZSA6IGRjdFttLlZhbHVlXSk7IAoJCUNvbnNvbGUuV3JpdGUob3V0cHV0KTsKCQkKCQkvL3ZhciBvdXRwdXQgPSAiYm9vIGJvbyB0ZXN0IHRlc3QxIHRlc3QzLi4uIjsKCX0KfQ==