Bir dizeden tüm özel karakterleri kaldırmak istiyorum. İzin verilen karakterler AZ (büyük harf veya küçük harf), rakamlar (0-9), alt çizgi (_) veya nokta işaretidir (.).
Aşağıdakiler var, işe yarıyor ama çok verimli olmadığından şüpheliyim (biliyorum!):
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();
}
Bunu yapmanın en etkili yolu nedir? Normal ifade nasıl görünür ve normal dize manipülasyonu ile nasıl karşılaştırılır?
Temizlenecek dizeler oldukça kısa, genellikle 10 ila 30 karakter uzunluğunda olacaktır.