using System; using System.IO; using System.Text; using System.Text.RegularExpressions; public class Test { public static void Main() { var rx = new Regex(@"""(?=[^}]*(?:}})*[^}]*$)|(?<=^[^{]*(?:{{)*)"""); Console.WriteLine(string.Format("$@\"{0}\"",rx.Replace("foo {bar}","\"\""))); Console.WriteLine(string.Format("$@\"{0}\"",rx.Replace("\"foo\" {bar}","\"\""))); Console.WriteLine(string.Format("$@\"{0}\"",rx.Replace("foo {\"bar\"}","\"\""))); Console.WriteLine(string.Format("$@\"{0}\"",rx.Replace("foo {{\"bar\"}}","\"\""))); Console.WriteLine(string.Format("$@\"{0}\"",rx.Replace("foo {{{\"bar\"}}}","\"\""))); } }