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 = "123-234;FOO-456;45-67;FOO-FOO;890;FOO-123;11-22;123;123;44-55;098-567;890;123-FOO;";
var rx = new Regex(@"(?<=^|;)((?<range>\d+-\d+)|(?<integer>\d+))(?=$|;)", RegexOptions.ExplicitCapture);
var result = rx.Matches(s)
.Cast<Match>()
.Select(x => x.Groups["range"].Success ?
x.Groups["range"].Value : x.Groups["integer"].Value
).ToList();
foreach (var x in result)
Console.WriteLine(x);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgCXZhciBzID0gIjEyMy0yMzQ7Rk9PLTQ1Njs0NS02NztGT08tRk9POzg5MDtGT08tMTIzOzExLTIyOzEyMzsxMjM7NDQtNTU7MDk4LTU2Nzs4OTA7MTIzLUZPTzsiOwogICAgCXZhciByeCA9IG5ldyBSZWdleChAIig/PD1efDspKCg/PHJhbmdlPlxkKy1cZCspfCg/PGludGVnZXI+XGQrKSkoPz0kfDspIiwgUmVnZXhPcHRpb25zLkV4cGxpY2l0Q2FwdHVyZSk7CiAgICAJdmFyIHJlc3VsdCA9IHJ4Lk1hdGNoZXMocykKICAgIAkJCS5DYXN0PE1hdGNoPigpCiAgICAJCQkuU2VsZWN0KHggPT4geC5Hcm91cHNbInJhbmdlIl0uU3VjY2VzcyA/IAogICAgCQkJCXguR3JvdXBzWyJyYW5nZSJdLlZhbHVlIDogeC5Hcm91cHNbImludGVnZXIiXS5WYWx1ZQogICAgCQkJKS5Ub0xpc3QoKTsKICAgICAgICBmb3JlYWNoICh2YXIgeCBpbiByZXN1bHQpCiAgICAgICAgCUNvbnNvbGUuV3JpdGVMaW5lKHgpOwoJfQp9