Depura tus expresiones regulares sin prueba y error en el código
Las expresiones regulares (regex) son el lenguaje estándar para buscar, validar y extraer texto por patrones, y a la vez una de las cosas más difíciles de afinar a ciegas: un carácter mal escapado y el patrón deja de casar sin dar ningún error. Este probador te muestra en tiempo real qué partes del texto coinciden, cuántas coincidencias hay y qué captura cada grupo. Escribes el patrón arriba, pegas el texto de prueba debajo, activas las banderas que necesites y ves el resultado resaltado al momento.
Chuleta rápida: los bloques con los que se construye una regex
Metacaracteres básicos
- . — cualquier carácter salvo el salto de línea.
- ^ y $ — anclan al inicio y al final del texto (o de cada línea con la bandera m).
- | — alternativa: gato|perro casa con cualquiera de las dos palabras.
- \ — escapa un carácter especial: \. es un punto literal, \$ un símbolo de dólar.
Clases de caracteres
- [abc] — uno de los caracteres listados; [a-z] y [0-9] definen rangos; [^abc] niega la clase.
- \d — un dígito; \w — letra, dígito o guion bajo; \s — espacio en blanco. Sus mayúsculas (\D, \W, \S) son la negación.
Cuantificadores
- * — cero o más veces; + — una o más; ? — cero o una.
- {3} — exactamente tres repeticiones; {2,5} — entre dos y cinco; {2,} — dos o más.
Dos ejemplos que puedes probar ahora mismo
Validar un email de forma aproximada
Prueba el patrón ^[\w.+-]+@[\w-]+\.[a-z]{2,}$ con las banderas i y m sobre una lista de direcciones, una por línea. Exige algo antes de la arroba, un dominio y una extensión de al menos dos letras. Es deliberadamente aproximado: el estándar completo de los emails es mucho más permisivo, así que usa la regex para cazar erratas evidentes y confirma la dirección real enviando un correo.
Extraer todos los números de un texto
Con \d+([.,]\d+)? y la bandera g sacarás enteros y decimales de un texto como «el pedido 4821 costó 129,90 euros»: casará con 4821 y con 129,90. El grupo entre paréntesis captura la parte decimal por separado, y lo verás listado bajo cada coincidencia.
Codicioso frente a perezoso: el error más común
Por defecto los cuantificadores son codiciosos(greedy): devoran el máximo texto posible. Se ve claro con un caso: sobre el texto «<b>uno</b> y <b>dos</b>», el patrón <b>.*</b> devuelve una única coincidencia que va desde la primera etiqueta hasta la última, tragándose el « y » intermedio.
La solución: añade ? al cuantificador para hacerlo perezoso (lazy). <b>.*?</b> se detiene en el primer cierre y devuelve dos coincidencias separadas, que es casi siempre lo que buscas.
Otro tropiezo habitual: olvidar la bandera g y extrañarse de que solo aparezca la primera coincidencia, o escapar de más dentro de una clase de caracteres, donde el punto y el asterisco ya son literales.
Herramientas relacionadas
Para otras tareas de código te servirán escapar HTML, el formateador de JSON, el comparador de textos y el generador de hash. Más en herramientas de archivos.