fork download
  1. using System;
  2. using System.Linq;
  3. using System.Text.RegularExpressions;
  4.  
  5. public class Test
  6. {
  7. private const string INPUT =
  8. "Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Common\", \"Libraries\\Common\\Common.csproj\", \"{91197577-34B9-4D46-B3FE-A8589D4380B1}\"";
  9.  
  10. private const string OUTPUT =
  11. "Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Blah\", \"..\\Core\\Libraries\\Blah\\Blah.csproj\", \"{91197577-34B9-4D46-B3FE-A8589D4380B1}\"";
  12.  
  13. public static void Main()
  14. {
  15. var name = "Blah";
  16. var location = "..\\Core\\Libraries\\Blah\\Blah.csproj";
  17. var result = Regex.Replace(INPUT, "^(.*\")(\\w+)(\".*\")([\\w\\\\\\.]+)(\".*)$", m =>
  18. {
  19. return string.Join("",
  20. m.Groups.OfType<Group>().Select((g, i) =>
  21. {
  22. switch (i)
  23. {
  24. case 1:
  25. return g.Value;
  26. case 2:
  27. return name;
  28. case 3:
  29. return g.Value;
  30. case 4:
  31. return location;
  32. default:
  33. return g.Value;
  34. }
  35. }).Skip(1).ToArray());
  36. });
  37. Console.Out.WriteLine($"Input:\t\t{INPUT}");
  38. Console.Out.WriteLine($"Expected:\t{OUTPUT}");
  39. Console.Out.WriteLine($"Actual:\t\t{result}");
  40. }
  41. }
Success #stdin #stdout 0.07s 22080KB
stdin
Standard input is empty
stdout
Input:		Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Libraries\Common\Common.csproj", "{91197577-34B9-4D46-B3FE-A8589D4380B1}"
Expected:	Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blah", "..\Core\Libraries\Blah\Blah.csproj", "{91197577-34B9-4D46-B3FE-A8589D4380B1}"
Actual:		Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blah", "..\Core\Libraries\Blah\Blah.csproj", "{91197577-34B9-4D46-B3FE-A8589D4380B1}"