Ich möchte alle Sonderzeichen aus einer Zeichenfolge entfernen. Zulässige Zeichen sind AZ (Groß- oder Kleinbuchstaben), Zahlen (0-9), Unterstrich (_) oder das Punktzeichen (.).
Ich habe folgendes, es funktioniert, aber ich vermute (ich weiß!), Es ist nicht sehr effizient:
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();
}
Was ist der effizienteste Weg, dies zu tun? Wie würde ein regulärer Ausdruck aussehen und wie ist er mit einer normalen String-Manipulation zu vergleichen?
Die zu bereinigenden Zeichenfolgen sind ziemlich kurz und normalerweise zwischen 10 und 30 Zeichen lang.