using System; using System.Linq.Expressions; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { string pattern = @"(?<=\[)[^][]*(?=])|(?<=#)[^#]*(?=#)|[A-Za-z0-9.]+"; string input = @"add galaxy [Milky way] elliptical 13.2B #test test #"; String[] matches = Regex.Matches(input, pattern) .Cast() .Select(m => m.Value) .ToArray(); foreach (String m in matches) { Console.WriteLine(m); } } }