WikiPlus

Usar regex para buscar y reemplazar texto — ejemplos con grupos de captura

El buscar-y-reemplazar con expresiones regulares es una de las operaciones de procesamiento de texto más poderosas disponibles. A diferencia del buscar-y-reemplazar simple por texto fijo, con regex puedes capturar partes del texto original y reutilizarlas en el reemplazo, transformar formatos de fecha, normalizar números de teléfono, limpiar datos de CSV, o reformatear código automáticamente. Esta guía cubre los casos de uso más habituales con ejemplos que puedes probar y adaptar.

Grupos de captura en operaciones de reemplazo

Los grupos de captura en el patrón regex se referencian en el string de reemplazo mediante $1, $2, $3... (en JavaScript y PHP) o \1, \2, \3... (en Python y editores como VS Code en modo regex). Por ejemplo, para convertir fechas del formato YYYY-MM-DD al formato DD/MM/YYYY: patrón (\d{4})-(\d{2})-(\d{2}), reemplazo $3/$2/$1. La fecha 2024-03-15 se convierte en 15/03/2024. Este tipo de transformación sería muy complicada con string manipulation tradicional pero es trivial con regex y grupos de captura.

Limpiar y normalizar datos de texto

Los datos importados de fuentes externas —CSVs, APIs legacy, scrapers web— frecuentemente tienen inconsistencias que el buscar-y-reemplazar con regex puede resolver en lote. Normalizar múltiples espacios en uno solo: patrón \s+, reemplazo ' '. Eliminar caracteres no ASCII de texto en español: patrón [^\x00-\x7FáéíóúÁÉÍÓÚñÑüÜ], reemplazo '' (vacío). Eliminar tags HTML de texto: patrón <[^>]+>, reemplazo '' (vacío). Convertir saltos de línea Windows (\r\n) a Unix (\n): patrón \r\n, reemplazo '\n'. Cada uno de estos patrones se puede probar en WikiPlus Probador de Regex para verificar el resultado antes de aplicarlo en producción.

Reformatear código con regex en VS Code

VS Code soporta búsqueda y reemplazo con regex usando grupos de captura, lo que lo convierte en un editor de transformaciones de código muy potente. Ejemplos de transformaciones reales: cambiar la nomenclatura de variables de camelCase a snake_case: patrón ([a-z])([A-Z]), reemplazo $1_$2 (seguido de Ctrl+H con la opción de reemplazar todas); añadir el tipo any a todos los parámetros de función sin tipo en TypeScript: patrón (function \w+\([^)]*)(\)) cuando el patrón interno identifica parámetros sin tipo. Estas transformaciones que manualmente tomarían horas en archivos grandes se hacen en segundos con regex.

Extraer datos estructurados de texto con regex

Además de validar y reemplazar, las expresiones regulares se usan para extraer datos de texto semiestructurado. Para extraer todas las URLs de un documento HTML: patrón href="([^"]+)", el grupo 1 captura la URL. Para extraer precios de un texto de producto: patrón (\d+[.,]\d{2})\s?€, el grupo 1 captura el número. Para extraer hashtags de texto de redes sociales: patrón #(\w+), el grupo 1 captura cada hashtag sin el #. En JavaScript, estos patrones se usan con matchAll() en modo global para obtener todos los grupos de captura de todas las coincidencias del texto.

Preguntas frecuentes

¿WikiPlus Probador de Regex tiene función de reemplazo?
WikiPlus Probador de Regex se enfoca en visualizar las coincidencias y los grupos de captura del patrón. Para probar el reemplazo, usa directamente la consola del navegador (F12 > Console): 'tu texto'.replace(/tu patrón/g, 'tu reemplazo') te permite probar la sustitución con el motor JavaScript real en segundos.
¿Cómo hago que el regex NO sea sensible a mayúsculas/minúsculas?
Activa el flag i (case-insensitive) en WikiPlus marcando la casilla correspondiente. Con el flag i, el patrón [a-z] coincide también con [A-Z], y palabras como 'Email', 'EMAIL' y 'email' coinciden con el mismo patrón email. Esto es especialmente útil en validación de formularios donde no sabes si el usuario escribirá en mayúsculas o minúsculas.
¿Puedo usar regex para procesar un archivo CSV completo?
Puedes pegar el contenido del CSV completo en el área de texto del Probador de Regex y probar patrones sobre él. Para procesar un CSV real con reemplazos y transformaciones, el flujo más eficiente es: prueba el patrón en WikiPlus para confirmar que funciona, luego aplícalo en tu entorno de desarrollo con Python (módulo csv + re), Node.js, o directamente con sed/awk en terminal para procesar el archivo completo de forma automatizada.