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{(?<val>[^;]*)(?:;(?<val>[^;]*))+}\z";
var caps = new List<string>();
var result = Regex.Match(s, pat);
if (result.Success)
{
caps = result.Groups["val"].Captures.Cast<Capture>().Select(t=>t.Value).ToList();
}
// DEMO
Console.WriteLine(string.Join("\n", caps));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgCXZhciBzID0gInt0b2tlbjE7dG9rZW4yO3Rva2VuMzsuLi47dG9rZW5ufSI7CiAgICAJdmFyIHBhdCA9IEAiXEF7KD88dmFsPlteO10qKSg/OjsoPzx2YWw+W147XSopKSt9XHoiOwogICAgCXZhciBjYXBzID0gbmV3IExpc3Q8c3RyaW5nPigpOwogICAgCXZhciByZXN1bHQgPSBSZWdleC5NYXRjaChzLCBwYXQpOwoJCWlmIChyZXN1bHQuU3VjY2VzcykKICAgICAgICB7CiAgICAgICAgICAgIGNhcHMgPSByZXN1bHQuR3JvdXBzWyJ2YWwiXS5DYXB0dXJlcy5DYXN0PENhcHR1cmU+KCkuU2VsZWN0KHQ9PnQuVmFsdWUpLlRvTGlzdCgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBERU1PCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIlxuIiwgY2FwcykpOwoJfQp9