web-dev-qa-db-fra.com

Comment supprimer des nombres d'une chaîne en utilisant Regex.Replace?

Je dois utiliser Regex.Replace pour supprimer tous les nombres et les signes d'une chaîne.

Exemple d'entrée: 123- abcd33 Exemple de sortie: abcd

Merci d'avance.

46
Gold

Essayez ce qui suit:

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

L'identifiant \d correspond simplement à n'importe quel caractère numérique.

96
Noldorin

Vous pouvez le faire avec une solution semblable à LINQ au lieu d’une expression régulière:

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

Un test de performance rapide montre que cela est environ cinq fois plus rapide qu'avec une expression régulière.

13
Guffa
var result = Regex.Replace("123- abcd33", @"[0-9\-]", string.Empty);
5
Darin Dimitrov

En tant qu'extension de chaîne: 

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

Usage:

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

le meilleur design est:

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