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
No answers yet.
Connectez-vous pour laisser une réponse