97 votes

Comment supprimer les chiffres d'une chaîne de caractères à l'aide de Regex.Replace ?

J'ai besoin d'utiliser Regex.Replace pour supprimer tous les chiffres et les signes d'une chaîne de caractères.

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

166voto

Noldorin Points 67794

Essayez ce qui suit :

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

En \d correspond simplement à tout caractère numérique.

27voto

Guffa Points 308133

Vous pouvez le faire avec une solution de type 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 rapide test de performance montre que cette méthode est environ cinq fois plus rapide que l'utilisation d'une expression régulière.

12voto

Ali Rasoulian Points 97

Les codes de soufflage pourraient vous aider...

Chercher des numéros :

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

Les lettres de Fetch :

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

5voto

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

3voto

Sgedda Points 13

Comme une extension de la chaîne de caractères :

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

Utilisation :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X