¿Cómo elimino todos los caracteres no alfanuméricos de una cadena excepto los caracteres de guión y espacio?
606
Reemplazar [^a-zA-Z0-9 -]
con una cadena vacía.
Regex rgx = new Regex("[^a-zA-Z0-9 -]");
str = rgx.Replace(str, "");
-
debe estar al final de la clase de personaje, o escapar con una barra invertida, para evitar que se use para un rango.replaceAll
función en lugar dereplace
.return Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled);
misma pregunta básica""
ystring.Empty
exactamente lo mismo. stackoverflow.com/questions/151472/…Podría haber usado RegEx, pueden proporcionar una solución elegante pero pueden causar problemas de rendimiento. Aquí hay una solución
Cuando se usa el marco compacto (que no tiene FindAll)
Reemplace FindAll con 1
1 comentario por ShawnFeatherly
fuente
char[] arr = str.Where(c => (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-')).ToArray();
Puedes probar:
¿Dónde
s
está tu cuerda?fuente
Usando System.Linq
fuente
La expresión regular es
[^\w\s\-]*
:\s
es mejor usarlo en lugar de espacio (), porque puede haber una pestaña en el texto.
fuente
Basado en la respuesta a esta pregunta, creé una clase estática y las agregué. Pensé que podría ser útil para algunas personas.
Entonces los métodos se pueden usar como:
fuente
¿Quieres algo rápido?
Esto le permitirá especificar qué caracteres desea permitir también.
fuente
Aquí hay una solución rápida amigable de asignación de almacenamiento no regex que era lo que estaba buscando.
Edición insegura.
Y para aquellos que no quieren usar inseguro o no confían en el truco de longitud de cadena.
fuente
He hecho una solución diferente, eliminando los caracteres de Control , que era mi problema original.
Es mejor que poner en una lista todos los caracteres "especiales pero buenos"
es más simple, ¡así que creo que es mejor!
fuente
Aquí hay un método de extensión que usa @ata answer como inspiración.
o si necesita caracteres adicionales que no sean guiones ...
fuente
Utilizo una variación de una de las respuestas aquí. Quiero reemplazar espacios con "-" para que sea amigable con SEO y también en minúsculas. Tampoco referencia system.web de mi capa de servicios.
fuente
Aquí hay una versión muy concisa
fuente
Hay una manera mucho más fácil con Regex.
fuente