fork download
  1. using System;
  2. using System.Text.RegularExpressions;
  3.  
  4. public class Test
  5. {
  6. public static void Main()
  7. {
  8. var regexFormat = @"{0}(?=\()((?>/\*.*?\*/)|(?>@""(""""|[^""])*"")|(?>""(\\""|[^""])*"")|\r?\n|[^()""]|(?<open>\()|(?<-open>\)))+?(?(open)(?!))";
  9.  
  10. var input = "var res = \"abc\" + Foo.myFunc(foo, \nBar.otherFunc( Baz.funk()));\nSomeOtherCode Foo.myFunc(.\r\n..)";
  11. Console.WriteLine(Regex.Replace(input, string.Format(regexFormat, @"Foo\.myFunc"), @"""def"""));
  12.  
  13. var inputTrollMe = @"var res = ""abc"" + trollMe(""\""("", ""(("", @""abc""""de((f"")";
  14. Console.WriteLine(Regex.Replace(inputTrollMe, string.Format(regexFormat, @"trollMe"), @"""def"""));
  15.  
  16. var inputTrollMeAgain = @"var res = ""abc"" + Foo.myFunc(0 /* "") */)";
  17. Console.WriteLine(Regex.Replace(inputTrollMeAgain, string.Format(regexFormat, @"Foo.myFunc"), @"""def"""));
  18. }
  19. }
Success #stdin #stdout 0.12s 24432KB
stdin
Standard input is empty
stdout
var res = "abc" + "def";
SomeOtherCode "def"
var res = "abc" + "def"
var res = "abc" + "def"