Quero remover todos os caracteres especiais de uma string. Os caracteres permitidos são AZ (maiúsculas ou minúsculas), números (0-9), sublinhado (_) ou o sinal de ponto (.).
Eu tenho o seguinte, funciona, mas desconfio (eu sei!) Que não é muito eficiente:
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 é a maneira mais eficiente de fazer isso? Como seria uma expressão regular e como ela se compara à manipulação normal de strings?
As strings que serão limpas serão bastante curtas, geralmente entre 10 e 30 caracteres.