¿Cómo elimino todos los caracteres no alfanuméricos de una cadena excepto el guión?
¿Cómo elimino todos los caracteres no alfanuméricos de una cadena, excepto los guiones y los espacios?
Aceptado
Reemplace [^a-zA-Z0-9 -]
con una cadena vacía.
Regex rgx = new Regex("[^a-zA-Z0-9 -]");
str = rgx.Replace(str, "");
Podría haber usado RegEx, pueden proporcionar una solución elegante pero pueden causar problemas de rendimiento. Aquí hay una solución
char[] arr = str.ToCharArray();
arr = Array.FindAll<char>(arr, (c => (char.IsLetterOrDigit(c)
|| char.IsWhiteSpace(c)
|| c == '-')));
str = new string(arr);
Cuando se utiliza el marco compacto (que no tiene FindAll)
Reemplace BuscarTodo con 1
char[] arr = str.Where(c => (char.IsLetterOrDigit(c) ||
char.IsWhiteSpace(c) ||
c == '-')).ToArray();
str = new string(arr);
1 comentario de ShawnFeatherly