Avatar ·

Comment supprimer tous les caractères d'une chaîne sauf les lettres, les chiffres et le trait d'union en C# ?

Bonjour à tous ! Je suis débutant en C# et j'ai rencontré un problème : je dois nettoyer une chaîne de tous les caractères sauf les lettres (latin et cyrillique), les chiffres et le trait d'union (-). Par exemple, j'ai la chaîne : ```csharp string input = "Hello-World! How are you? (test) 123-456 #2024"; ``` Le résultat devrait être : ``` Hello-World How are you test 123-456 2024 ``` C'est-à-dire que les signes de ponctuation, les espaces, les parenthèses, les dièses et tout le reste sont supprimés, sauf les lettres, les chiffres et le trait d'union. J'ai essayé d'utiliser `Regex.Replace` avec le pattern `[^a-zA-Z0-9-]`, mais il supprime le cyrillique, alors que j'ai besoin de le conserver. Si j'ajoute `а-яА-Я`, il reste encore des problèmes avec les espaces — ils sont aussi supprimés, alors que j'ai besoin qu'ils restent. Pouvez-vous me dire comment composer correctement l'expression régulière ou s'il existe une autre méthode ? De préférence avec un exemple de code. Merci d'avance ! Tags : C#, chaînes, expressions régulières, nettoyage de chaîne