using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var s = "{token1;token2;token3;...;tokenn}"; var pat = @"\A{(?[^;]*)(?:;(?[^;]*))+}\z"; var caps = new List(); var result = Regex.Match(s, pat); if (result.Success) { caps = result.Groups["val"].Captures.Cast().Select(t=>t.Value).ToList(); } // DEMO Console.WriteLine(string.Join("\n", caps)); } }