2011-01-17 15 views
0

Ich habe ein paar Probleme mit Regex in C#. Ich benötige eine Zeichenfolge, die übergeben werden soll, und nur die Buchstaben, die zurückgegeben werden sollen (als eine Zeichenfolge), wenn also beispielsweise die Zeichenfolge "4hr" ist, möchte ich "hr" zurückgeben. Wenn die Zeichenfolge "Gp. 23" ist, möchte ich nur "Gp" zurückgegeben werden.C# Regex Hilfe

Ich habe versucht:

string[] extractedWords = System.Text.RegularExpressions.Regex.Split(expr, "[a-zA-Z]"); 

Aber das scheint nicht zu funktionieren.

Antwort

4

Wenn Sie nur eine Zeichenfolge zurückgegeben werden möchten, ist die Verwendung von Split eine schlechte Idee. Wie wäre es mit:

Mit anderen Worten: "Ersetzen Sie alles, was nicht A-Z oder a-z ist mit einer leeren Zeichenfolge". Beachten Sie, dass das auch Nicht-ASCII-Zeichen strip; Sie Mai möchten stattdessen eine Unicode-Zeichenklasse (z. B. "Brief") verwenden.

+0

Genau so sollte es gemacht werden. – deadlock

+0

Perfekt. Danke Jon. Ich habe gerade erst angefangen, etwas über dieses Konzept zu lernen. Werde in den nächsten Tagen noch etwas lesen. –

+0

In diesem Fall ist ASCII in Ordnung, aber danke für den Hinweis. –