Comment remplacer tous les caractères spéciaux dans une chaîne en utilisant C #

Je voudrais remplacer tous les caractères spéciaux dans une chaîne par une comma (,) .

Par exemple:

 Hello@Hello&Hello(Hello) 

le résultat –

 Hello,Hello,Hello,Hello, 

(Je ne sais pas comment utiliser regexp en C #)

Puis-je faire ce travail en utilisant regexp en C #?

Oui, vous pouvez utiliser regular expressions en C #.

Using regular expressions with C# :

 using System.Text.RegularExpressions; ssortingng your_Ssortingng = "Hello@Hello&Hello(Hello)"; ssortingng my_Ssortingng = Regex.Replace(your_Ssortingng, @"[^0-9a-zA-Z]+", ","); 

Supposons que vous souhaitiez remplacer des symboles qui ne sont ni des chiffres ni des lettres (et le caractère _ en tant que @Guffa correctement pointé):

 ssortingng input = "Hello@Hello&Hello(Hello)"; ssortingng result = Regex.Replace(input, @"[^\w\d]", ","); // Hello,Hello,Hello,Hello, 

Vous pouvez append d’autres symboles qui ne doivent pas être remplacés. Par exemple, si vous voulez que les symboles d’espace blanc restnt, ajoutez simplement \s au motif: \[^\w\d\s]

Vous pouvez utiliser une expression régulière pour remplacer, par exemple, tous les caractères non alphanumériques par des virgules:

 s = Regex.Replace(s, "[^0-9A-Za-z]+", ","); 

Remarque: le signe + après le jeu le fera remplacer chaque groupe de caractères non alphanumériques par une virgule. Si vous souhaitez remplacer chaque caractère par une virgule, supprimez simplement le + .

En outre, cela peut être fait avec LINQ

 var str = "Hello@Hello&Hello(Hello)"; var characters = str.Select(c => char.IsLetter(c) ? c : ',')).ToArray(); var output = new ssortingng(characters); Console.WriteLine(output);