RegEx: supprimer tous les caractères non alphanumériques sauf le tiret

Bonjour,

SVP, Comment je peux supprimer tous les caractères non alphanumériques dans une chaîne de caractéres, à l’exception des tirets et des espaces ?

Etant donnée la chaine suivante:

@exemple-test123_456!

L’objectif est d’avoir la sortie comme:

exemple-test123456

Remplacer [^A-ZÀ-Ýa-zà-ý0-9 -] par une chaîne vide.

Regex rgx = new Regex("[^A-ZÀ-Ýa-zà-ý0-9 -]");
str = rgx.Replace(str, "");

Voici le demo.

Vous pouvez essayer :

string s1 = Regex.Replace(s, "[^A-ZÀ-Ýa-zà-ý0-9 -]", "");

s est votre chaîne de caractères.

L’expression régulière est la suivante [^\w\s\-]*:

\s est préférable à la place d’un espace ’ ', car il peut y avoir une tabulation dans le texte.