using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string pattern = @"\b[fF]iles\b[^*()]*(?:\([^()]*\))?\|\*(?<ext>\.[\w*]+)(?:[,;]\*(?<ext>\.[\w*]+))*";
string input = @"txt files `(*.txt)|*.txt|All files (*.*)|*.*`
Image Files`|*.jpg;*.jpeg;*.png;`
Excel Files `(*.xls, *.xlsx)|*.xls;*.xlsx|CSV Files (*.csv)|*.csv`";
var strings = Regex.Matches(input, pattern)
.SelectMany(m => m.Groups["ext"].Captures.Select(c => c.Value))
.ToArray()
.Distinct();
foreach (var s in strings)
{
Console.WriteLine(s);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlzdHJpbmcgcGF0dGVybiA9IEAiXGJbZkZdaWxlc1xiW14qKCldKig/OlwoW14oKV0qXCkpP1x8XCooPzxleHQ+XC5bXHcqXSspKD86Wyw7XVwqKD88ZXh0PlwuW1x3Kl0rKSkqIjsKICAgICAgICBzdHJpbmcgaW5wdXQgPSBAInR4dCBmaWxlcyBgKCoudHh0KXwqLnR4dHxBbGwgZmlsZXMgKCouKil8Ki4qYApJbWFnZSBGaWxlc2B8Ki5qcGc7Ki5qcGVnOyoucG5nO2AKRXhjZWwgRmlsZXMgYCgqLnhscywgKi54bHN4KXwqLnhsczsqLnhsc3h8Q1NWIEZpbGVzICgqLmNzdil8Ki5jc3ZgIjsKCiAgICAgICAgdmFyIHN0cmluZ3MgPSBSZWdleC5NYXRjaGVzKGlucHV0LCBwYXR0ZXJuKQoKICAgICAgICAuU2VsZWN0TWFueShtID0+IG0uR3JvdXBzWyJleHQiXS5DYXB0dXJlcy5TZWxlY3QoYyA9PiBjLlZhbHVlKSkKICAgICAgICAuVG9BcnJheSgpCiAgICAgICAgLkRpc3RpbmN0KCk7CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCAodmFyIHMgaW4gc3RyaW5ncykKICAgICAgICB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHMpOwogICAgICAgIH0KCX0KfQ==