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(StringComparer.OrdinalIgnoreCase) { { "english", "en"}, { "german", "de"}, { "italian", "it" } }; //var url = "http://w...content-available-to-author-only...e.org/english/"; // http://e...content-available-to-author-only...e.org/ var url = "https://w...content-available-to-author-only...e.org/German/"; // https://d...content-available-to-author-only...e.org/ string pat = @"(?i)^(https?://)www\.(.*?)/(english|german|italian)/.*$"; Console.WriteLine(Regex.Replace(url, pat, m => { var val = ""; return dct.TryGetValue(m.Groups[3].Value, out val) ? $"{m.Groups[1].Value}{dct[m.Groups[3].Value]}.{m.Groups[2].Value}/" : $"{m.Groups[1].Value}{m.Groups[3].Value}.{m.Groups[2].Value}/"; } ) ); // //http://e...content-available-to-author-only...e.org/ } }