using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var input = "One Two \"Three Four\" \"Five \\\"Six\\\"\"";
Console.WriteLine(input);
List<string> matches = Regex.Matches(input, @"(?s)""(?<r>[^""\\]*(?:\\.[^""\\]*)*)""|(?<r>\S+)")
.Cast<Match>()
.Select(x => Regex.Replace(x.Groups["r"].Value, @"\\(.)", "$1"))
.ToList();
foreach (var s in matches)
Console.WriteLine(s);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBpbnB1dCA9ICJPbmUgVHdvIFwiVGhyZWUgRm91clwiIFwiRml2ZSBcXFwiU2l4XFxcIlwiIjsKCQlDb25zb2xlLldyaXRlTGluZShpbnB1dCk7CgkJTGlzdDxzdHJpbmc+IG1hdGNoZXMgPSBSZWdleC5NYXRjaGVzKGlucHV0LCBAIig/cykiIig/PHI+W14iIlxcXSooPzpcXC5bXiIiXFxdKikqKSIifCg/PHI+XFMrKSIpCiAgICAgICAgICAgIC5DYXN0PE1hdGNoPigpCiAgICAgICAgICAgIC5TZWxlY3QoeCA9PiBSZWdleC5SZXBsYWNlKHguR3JvdXBzWyJyIl0uVmFsdWUsIEAiXFwoLikiLCAiJDEiKSkKICAgICAgICAgICAgLlRvTGlzdCgpOwogICAgICAgIGZvcmVhY2ggKHZhciBzIGluIG1hdGNoZXMpCiAgICAgICAgCUNvbnNvbGUuV3JpdGVMaW5lKHMpOwoJfQp9