using System; using System.Linq; using System.Text.RegularExpressions; public class Test { private const string INPUT = "Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Common\", \"Libraries\\Common\\Common.csproj\", \"{91197577-34B9-4D46-B3FE-A8589D4380B1}\""; private const string OUTPUT = "Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Blah\", \"..\\Core\\Libraries\\Blah\\Blah.csproj\", \"{91197577-34B9-4D46-B3FE-A8589D4380B1}\""; public static void Main() { var name = "Blah"; var location = "..\\Core\\Libraries\\Blah\\Blah.csproj"; var result = Regex.Replace(INPUT, "^(.*\")(\\w+)(\".*\")([\\w\\\\\\.]+)(\".*)$", m => { return string.Join("", m.Groups.OfType().Select((g, i) => { switch (i) { case 1: return g.Value; case 2: return name; case 3: return g.Value; case 4: return location; default: return g.Value; } }).Skip(1).ToArray()); }); Console.Out.WriteLine($"Input:\t\t{INPUT}"); Console.Out.WriteLine($"Expected:\t{OUTPUT}"); Console.Out.WriteLine($"Actual:\t\t{result}"); } }