Necesito usar Regex.Replace
para eliminar todos los números y signos de una cadena.Cómo eliminar números de la cadena usando Regex.Replace?
Ejemplo de entrada: 123- abcd33
Ejemplo de salida: abcd
Gracias de antemano.
Necesito usar Regex.Replace
para eliminar todos los números y signos de una cadena.Cómo eliminar números de la cadena usando Regex.Replace?
Ejemplo de entrada: 123- abcd33
Ejemplo de salida: abcd
Gracias de antemano.
intente lo siguiente:
var output = Regex.Replace(input, @"[\d-]", string.Empty);
El identificador \d
simplemente coincide con cualquier carácter de dígito.
gracias por la ayuda – Gold
var result = Regex.Replace("123- abcd33", @"[0-9\-]", string.Empty);
Puede hacerlo con un LINQ como solución en lugar de una expresión regular:
string input = "123- abcd33";
string chars = new String(input.Where(c => c != '-' && (c < '0' || c > '9')).ToArray());
Una prueba de rendimiento rápido muestra que esto es aproximadamente cinco veces más rápido que usar una expresión regular.
Hubiera pensado que sería al revés ... interesante. – SirDemon
@SirDemon: Sí, LINQ generalmente no es la opción más rápida, pero las expresiones regulares tienen una sobrecarga inicial más grande. Para las operaciones en cadenas cortas, la configuración del objeto RegEx toma más tiempo que el trabajo real. – Guffa
@Guffa ¿Sabes cómo funciona esto? Digamos que en 50k registros debería ir para RegEx? –
¿desea también eliminar "-"? Esos no son números ... – jle