2012-11-17 16 views
9

Ich habe eine Zeichenfolge, die viele Zeichen enthält. Ich möchte A-Za-z und Leerraum entfernen und mit dem Rest belassen werden. Was ist der beste Weg, dies zu tun?entfernen Sie Alpha-Zeichen und Leerraum von String

Hier ist, was ich versucht habe

presaleEstimateHigh = Regex.Replace(presaleEstimateHigh, @"[A-Za-z]", string.Empty); 

aber ich brauche auch Leerraum zu entfernen.

Antwort

10

Sie können \ s verwenden.

Zum Beispiel:

presaleEstimateHigh = Regex.Replace(presaleEstimateHigh, @"[A-Za-z\s]", string.Empty); 
3

Ihr regulärer Ausdruck ist gut, außer dem Leerzeichen. Dies sollte funktionieren:

string result = Regex.Replace(myString, @"[a-zA-Z\s]+", string.Empty); 
+0

'% 20' ist nicht das einzige Leerzeichen in der Stadt. – mellamokb

+0

@mellamokb Korrekt - aktualisiert meine Antwort. –

3

Ohne reguläre Ausdrücke:

var chars = str.Where(c => !char.IsLetter(c) && !char.IsWhitespace(c)).ToArray(); 
var rest = new string(chars); 
1

Sie haben es fast geschafft. Verwenden Sie diesen Regex-Ausdruck

[a-zA-Z ]+ 

Es enthält einfach den Leerzeichen. Das Hinzufügen eines + macht es effizienter, da ganze Reihen von Zeichen auf einmal (intern) ersetzt werden können.

+0

Dies beinhaltet jedoch keine Tabs. – Dan

Verwandte Themen