Guten Abend,
ich sitze gerade daran aus einer Zeichenkette verschiedene Informationen herauszufiltern.
Die Zeichenkette kann wie folgt aufgebaut sein:
Es geht darum, dass ein String vor einem Doppelpunkt zu einer Oberkategorie wird und alle anderen, die vor einem Semikolon stehen, zu einer Unterkategorie. Das sind leider die einzigen konstanten Muster.
Das letzte Zeichen kann ein Semikolon, ein Doppelpunkt oder der letzte Buchstabe einer Unterkategorie sein.
Eine Oberkategorie muss nicht immer eine Unterkategorie haben, umgekehrt schon. Leerzeichen können in den Teil-Strings vorkommen. Zwischen den Teil-Strings können sie auch vorkommen:
Der Aufbau von oben noch mal etwas sprechender:
Wenn ich jetzt die Split-Funktion benutze um nach Doppelpunkten aufzuteilen, ist es möglich, dass trotzdem Bezeichnungen von Oberkategorien in die Unterkategorie kommt.
Mein bisheriger Ansatz:
Ich brauche also einen Algorithmus, der mir das Ganze richtig auseinanderpflückt.
Hat jemand von euch eine Idee?
Vielen Dank schon mal im voraus.
ich sitze gerade daran aus einer Zeichenkette verschiedene Informationen herauszufiltern.
Die Zeichenkette kann wie folgt aufgebaut sein:
Code:
String: String; String; String: String; String; String; String:
Es geht darum, dass ein String vor einem Doppelpunkt zu einer Oberkategorie wird und alle anderen, die vor einem Semikolon stehen, zu einer Unterkategorie. Das sind leider die einzigen konstanten Muster.
Das letzte Zeichen kann ein Semikolon, ein Doppelpunkt oder der letzte Buchstabe einer Unterkategorie sein.
Eine Oberkategorie muss nicht immer eine Unterkategorie haben, umgekehrt schon. Leerzeichen können in den Teil-Strings vorkommen. Zwischen den Teil-Strings können sie auch vorkommen:
Code:
String:String; String;
Der Aufbau von oben noch mal etwas sprechender:
Code:
OK1: UK1_1; UK1_2; OK2: UK2_1; UK2_2; UK2_3; OK3:
Wenn ich jetzt die Split-Funktion benutze um nach Doppelpunkten aufzuteilen, ist es möglich, dass trotzdem Bezeichnungen von Oberkategorien in die Unterkategorie kommt.
Mein bisheriger Ansatz:
Code:
String[] tmpOM = omatchString.Split(':');
Int32 tmpOMlen = tmpOM.Length;
foreach (String item in tmpOM)
{
String[] abc = item.Split(';');
//todo
}
Ich brauche also einen Algorithmus, der mir das Ganze richtig auseinanderpflückt.
Hat jemand von euch eine Idee?
Vielen Dank schon mal im voraus.