Laden...

Split String into words and numbers

Erstellt von iced-t89 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.620 Views
I
iced-t89 Themenstarter:in
279 Beiträge seit 2008
vor 13 Jahren
Split String into words and numbers

Hallo,

ich stehe vor dem Problem das ich einen String (z.B. "Von2009BisHeute") in seine Worte aufteilen muss.
Sprich das Ergebnis muss so aussehen "Von 2009 Bis Heute". Ich habe leider rechtherzlich wenig Ahnung von Regex!

Könnt Ihr mir vllt. Tipps geben wie ich das anstellen könnte?

Mit freundlichen Grüße,
Jan

458 Beiträge seit 2007
vor 13 Jahren

Du koenntest versuchen ein Regex Pattern zu erstellen, das immer von einem Großbuchstaben aus bis zum naechsten Vorkommnis eines Großbuchstaben splittet und im Anschluss die Zahl extrahieren.
Ist sicherlich nicht best practice, wuerde aber funktionieren.

be the hammer, not the nail!

I
iced-t89 Themenstarter:in
279 Beiträge seit 2008
vor 13 Jahren

Hm Regex ist sicherlich die beste Lösung für dieses Problem, jedoch habe ich keine Ahnung von Regex. (Ich erwarte nicht das ich eine Fertige Lösung kriege)

:-|

S
417 Beiträge seit 2008
vor 13 Jahren

Hallo,

war das nur ein Beispiel-String oder sehen alle so aus?
Folgendes würde für das o.g. Beispiel klappen:


var s = "Von2009BisHeute";
var r = new Regex(@"([A-Z][a-z]+|\d+)+?");
var joined = string.Join(" ", r.Matches(s).OfType<Match>().Select(f => f.Groups[1]));

Gruß
Daniel

I
iced-t89 Themenstarter:in
279 Beiträge seit 2008
vor 13 Jahren

Weitere Beispiele sind:

ProcessWindowStyle
ProcessPriorityClass
Office2007Blue
SparklePuprle
Office2010Black

Ist natürlich auch Möglich das der Zahlenblock am Anfang oder Ende kommt!

Gelöschter Account
vor 13 Jahren

Hast du deine Beispiele mal mit dem geposteten Regex ausprobiert?

S
417 Beiträge seit 2008
vor 13 Jahren

Das Regex sollte all diese Fälle abdecken.

I
iced-t89 Themenstarter:in
279 Beiträge seit 2008
vor 13 Jahren

Oh nein noch nicht, geht sofort los 😃, ich erstatte Zeitnah Bericht! ^^

I
iced-t89 Themenstarter:in
279 Beiträge seit 2008
vor 13 Jahren

Tatsache der Regex funzt. Vielen dank 😃