Я хочу удалить все специальные символы из строки. Допустимые символы: AZ (верхний или нижний регистр), цифры (0-9), подчеркивание (_) или знак точки (.).
У меня есть следующее, это работает, но я подозреваю (я знаю!), Что это не очень эффективно:
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();
}
Какой самый эффективный способ сделать это? Как будет выглядеть регулярное выражение, и как оно будет сравниваться с обычными манипуляциями со строками?
Строки, которые будут очищены, будут довольно короткими, обычно длиной от 10 до 30 символов.