Я хочу видалити всі спеціальні символи з рядка. Дозволені символи - 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 символів.