Ciao
Senz'altro le regex ti vengono in aiuto. Questa:
@"(?<=-,)(?:\d*,)*\d*(?=,\|{3})"
Dovrebbe fare proprio al caso tuo, e questo è il codice per ciclare fra tutti i risultati:
//Crea la regex
Regex regex = new Regex(@"(?<=-,)(?:\d*,)*\d*(?=,\|{3})");
//Il soggetto su cui usare la regex
string tuaString = "|,1,5,-,1,5,3,3,-,1,5,3,8,8,-,1,5,3,8,20,20,-,1,5,3,8,20,30,30,|||,-ecc...";
//Ottiene tutti i risultati
MatchCollection results = regex.Matches(tuaString);
//Cicla su tutti i risultati
foreach (Match match in results)
{
//Questo è il testo ottenuto
string txt = match.Value;
}
Luca