Voglio rimuovere tutti i caratteri speciali da una stringa. I caratteri consentiti sono AZ (maiuscolo o minuscolo), numeri (0-9), trattino basso (_) o il segno punto (.).
Ho il seguente, funziona ma sospetto (lo so!) Non è molto efficiente:
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();
}
Qual è il modo più efficiente per farlo? Come sarebbe un'espressione regolare e come si confronta con la normale manipolazione delle stringhe?
Le stringhe che verranno pulite saranno piuttosto corte, in genere lunghe tra 10 e 30 caratteri.