Remplazar texto con expresiones regulares

En ocasiones necesitamos hacer búsquedas y reemplazos dentro de un proyecto. Lo que empezó siendo una única llamada, terminó siendo algo recurrente, y en una primera fase de análisis no lo habíamos planificado, o simplemente queremos darle una mejora de rendimiento retirando  «hardcode». Vamos a ver cómo realizarlo de una forma rápida y sencilla.

Caso práctico

Supongamos que a lo largo del código tenemos muchas llamadas de este tipo:

Según ha ido creciendo la aplicación hemos decidido contar con un struct de constantes, de este tipo:

 

¿Qué poner en la caja de búsqueda?

Para ello haremos una búsqueda marcando la opción de buscar como expresión regular, poniendo el texto: .TryGetList\(«(\w+)\»\);

Repasemos la expresión paso a paso:

  1. Buscamos el texto .TryGetListHasta aquí el texto inicial que nos búsque únivocamente.
  2. \( # Como estamos en modo búsqueda con expresión regular debemos escapar el paréntesis
  3. «(\w+)\» # Buscamos cualquier texto entre comillas
  4. \); # Volvemos a escapar el paréntesis, y finalizamos con punto y coma (;)

¿Qué poner en la caja de reemplazar texto?

En la caja de reemplazar el texto pondremos: .TryGetList(ListNames.$1);

¿Qué es eso de $1? Pues aquí está la magia. Visual Studio permite guardar como variable el contenido que buscamos como expresión regular, en este caso «(\w+)\» que vimos antes.

Resultado

Todo junto quedaría así:

 

¡Se acabó ir buscando todas las referencias, y cambiarlas manualmente! ¡Regex ftw!

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.