Wie entferne ich Zahlen mit Regex.Replace aus dem String?


71

Ich muss verwenden Regex.Replace , um alle Zahlen und Zeichen aus einer Zeichenfolge zu entfernen.

Beispieleingabe: 123- abcd33
Beispielausgabe:abcd


2
Sie möchten auch das "-" entfernt? Das sind keine Zahlen ...
1.

Antworten:


133

Versuche Folgendes:

var output = Regex.Replace(input, @"[\d-]", string.Empty);

Die \dKennung stimmt einfach mit einem beliebigen Ziffernzeichen überein.


20

Sie können dies mit einer LINQ-ähnlichen Lösung anstelle eines regulären Ausdrucks tun:

string input = "123- abcd33";
string chars = new String(input.Where(c => c != '-' && (c < '0' || c > '9')).ToArray());

Ein schneller Leistungstest zeigt, dass dies etwa fünfmal schneller ist als die Verwendung eines regulären Ausdrucks.


1
@ SirDemon: Ja, LINQ ist normalerweise nicht die schnellste Option, aber reguläre Ausdrücke haben einen größeren anfänglichen Overhead. Bei Operationen mit kurzen Zeichenfolgen dauert das Einrichten des RegEx-Objekts länger als die eigentliche Arbeit.
Guffa

@ Guffa Weißt du wie das skaliert? Sagen wir auf 50.000 Datensätzen, sollte ich mich für RegEx entscheiden?
Arnold Wiersma

1
@ArnoldWiersma: Beide sollten ziemlich gut skalieren, beide sind im Grunde genommen linear, so dass es keine bösen Überraschungen gibt. Ich kann nicht sagen, was schneller wäre, das müsste man testen.
Guffa

4
alternativnew string(text.Where(char.IsLetter).ToArray());
Skorunka František


2

Als String-Erweiterung:

    public static string RemoveIntegers(this string input)
    {
        return Regex.Replace(input, @"[\d-]", string.Empty);
    }

Verwendung:

"My text 1232".RemoveIntegers(); // RETURNS "My text "

2

Schlagcodes könnten Ihnen helfen ...

Zahlen abrufen:

return string.Concat(input.Where(char.IsNumber));

Briefe holen:

return string.Concat(input.Where(char.IsLetter));

1

Das beste Design ist:

public static string RemoveIntegers(this string input)
    {
        return Regex.Replace(input, @"[\d-]", string.Empty);
    }

0
text= re.sub('[0-9\n]',' ',text)

Installieren Sie Regex in Python. Führen Sie dann den folgenden Code aus.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.