Je veux supprimer tous les caractères spéciaux d'une chaîne de caractères. Les caractères autorisés sont A-Z (majuscules ou minuscules), les chiffres (0-9), le trait de soulignement (_) ou le signe point (.).
J'ai ce qui suit, cela fonctionne mais je soupçonne (je sais !) que ce n'est pas très efficace :
public static string RemoveSpecialCharacters(string str)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
if ((str[i] >= '0' && str[i] <= '9')
|| (str[i] >= 'A' && str[i] <= 'z'
|| (str[i] == '.' || str[i] == '_')))
{
sb.Append(str[i]);
}
}
return sb.ToString();
}
Quelle est la manière la plus efficace de le faire ? À quoi ressemblerait une expression régulière, et comment se compare-t-elle à la manipulation normale des chaînes de caractères ?
Les chaînes de caractères qui seront nettoyées seront plutôt courtes, généralement entre 10 et 30 caractères.