using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var text = "\".doc\" \"test.xls\", \".doc\",\"me.pdf\", \"test file.doc\".doc \".doc\"";
Console.WriteLine(text); // => ".doc" "test.xls", ".doc","me.pdf", "test file.doc".doc ".doc"
var pattern = "\"(?<ext>[^\"]+)\"|(?<ext>[^\\s,]+)";
Console.WriteLine(pattern); // => "(?<ext>[^"]+)"|(?<ext>[^\s,]+)
var results = Regex.Matches(text, pattern)
.Cast<Match>()
.Select(x => x.Groups["ext"].Value)
.Distinct();
Console.WriteLine(string.Join("\n", results));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgCXZhciB0ZXh0ID0gIlwiLmRvY1wiIFwidGVzdC54bHNcIiwgXCIuZG9jXCIsXCJtZS5wZGZcIiwgXCJ0ZXN0IGZpbGUuZG9jXCIuZG9jIFwiLmRvY1wiIjsKICAgIAlDb25zb2xlLldyaXRlTGluZSh0ZXh0KTsgLy8gPT4gIi5kb2MiICJ0ZXN0LnhscyIsICIuZG9jIiwibWUucGRmIiwgInRlc3QgZmlsZS5kb2MiLmRvYyAiLmRvYyIKICAgIAl2YXIgcGF0dGVybiA9ICJcIig/PGV4dD5bXlwiXSspXCJ8KD88ZXh0PlteXFxzLF0rKSI7CiAgICAJQ29uc29sZS5Xcml0ZUxpbmUocGF0dGVybik7IC8vID0+ICIoPzxleHQ+W14iXSspInwoPzxleHQ+W15ccyxdKykKICAgIAl2YXIgcmVzdWx0cyA9IFJlZ2V4Lk1hdGNoZXModGV4dCwgcGF0dGVybikKICAgIAkJLkNhc3Q8TWF0Y2g+KCkKICAgIAkJLlNlbGVjdCh4ID0+IHguR3JvdXBzWyJleHQiXS5WYWx1ZSkKICAgIAkJLkRpc3RpbmN0KCk7CiAgICAgICAJQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIlxuIiwgcmVzdWx0cykpOwoJfQp9