Soy completamente incapaz de expresiones regulares, por lo que necesito ayuda con un problema que creo que se resolvería mejor mediante el uso de expresiones regulares.Regex para eliminar todos los caracteres especiales de la cadena?
que tienen lista de cadenas en C#:
List<string> lstNames = new List<string>();
lstNames.add("TRA-94:23");
lstNames.add("TRA-42:101");
lstNames.add("TRA-109:AD");
foreach (string n in lstNames) {
// logic goes here that somehow uses regex to remove all special characters
string regExp = "NO_IDEA";
string tmp = Regex.Replace(n, regExp, "");
}
tengo que ser capaz de bucle sobre la lista y volver cada artículo sin ningún carácter especial. Por ejemplo, el ítem uno sería "TRA9423", el ítem dos sería "TRA42101" y el ítem tres sería TRA109AD.
¿Hay alguna expresión regular que pueda lograr esto por mí?
Además, la lista contiene más de 4000 elementos, por lo que necesito que la búsqueda y el reemplazo sean eficientes y rápidos si es posible.
EDIT: Debería haber especificado que cualquier carácter al lado de a-z, A-Z y 0-9 es especial en mi circunstancia.
4000 es una cantidad muy pequeña de artículos. ¿Por qué es tan importante que la respuesta sea eficiente y rápida en lugar de, por ejemplo, legible y mantenible? ¿Has medido un problema de rendimiento aquí? –
@Mark: esto es solo mi ignorancia, supongo. 4000 me parece que es mucho, pero aparentemente estoy equivocado. No hice ningún punto de referencia, pero la expresión regular parece ser muy rápida de todos modos, así que no creo que deba perder el tiempo acelerando nada. En realidad, simplifiqué un poco mi ejemplo, porque no quería complicar innecesariamente mi pregunta. De hecho, tengo una lista de objetos de clase complejos, y estoy usando .FindAll con una función de delegado para encontrar todas las coincidencias. La expresión regular entra en juego en una propiedad de mi clase que usa la expresión regular para manipular una cierta cadena para la función de delegado. – Jagd
¡Gracias a todos por su ayuda! Ojalá todas las preguntas fueran así de genios como ustedes. : D – Jagd