Las expresiones regulares me hicieron llorar hasta que encontré este comprobador
Pasé años convencido de que las expresiones regulares eran una forma de castigo inventada por administradores de sistemas sádicos. Luego un simple comprobador lo cambió todo.
Recuerdo el momento exacto en que las regex me rompieron. Tenía 25 años, mirando fijamente un patrón que se suponía debía validar direcciones de correo electrónico. Tenía unos 50 caracteres y parecía que un gato había caminado sobre mi teclado:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$
Lo había copiado de Stack Overflow. Funcionaba para la mayoría de los correos. Pero por alguna razón, rechazaba "o'brien@irishmail.ie". Pasé dos horas tratando de arreglarlo. Añadí barras invertidas. Quité barras invertidas. Añadí grupos. Cuestioné mis decisiones profesionales. No lo arreglé. Lloré un poco dentro de mi monitor.
Las regex ganaron ese día.
Qué Son las Regex?
Para los no iniciados — y benditos seáis si estáis en este grupo — regex (abreviatura de "expresión regular") es una forma de describir patrones en texto. Quieres encontrar cada número de teléfono en un documento de 10,000 palabras? Regex. Quieres comprobar si una cadena parece una fecha válida? Regex. Quieres sentir que estás descifrando runas antiguas mientras tus compañeros miran? Definitivamente regex.
El problema es que las regex parecen ruido de línea hasta que hacen clic. Y son despiadadas. Una barra invertida fuera de lugar y tu patrón pasa de "coincidir con todo" a "no coincidir con nada, y además fallar."
Cómo el Comprobador Me Salvó
Me estaba quejando de mis problemas con las regex de correo electrónico a una amiga, y ella dijo — muy casualmente — "Oh, solo usa un comprobador. Te muestra lo que cada parte del patrón está haciendo en tiempo real."
Abrí nuestro comprobador de regex, pegué mi patrón roto y escribí una cadena de prueba. Y allí estaba. La herramienta resaltaba cada parte del patrón en un color diferente, me mostraba exactamente qué caracteres coincidían con qué grupo y — críticamente — señalaba que mi clase de caracteres [a-zA-Z0-9._%+-] no incluía apóstrofos. Por supuesto que no. Era un idiota.
Pero la herramienta no me llamó idiota. Solo me mostró la verdad, suavemente, en una gloria de colores. Añadí el apóstrofo. El correo pasó. Sentí que acababa de realizar una cirugía cerebral.
Lo que Puedo Hacer Ahora
Hoy en día, no soy un maestro de regex. Todavía tengo que buscar cómo hacer lookaheads cada vez. Pero puedo escribir patrones con confianza para cosas como números de teléfono, códigos postales y validación básica de datos. Y pruebo cada uno antes de ponerlo en producción.
La clave: las regex no se aprenden leyendo un libro. Se aprenden haciendo — viendo qué coincide, qué no, e iterando. Un comprobador hace que ese bucle de retroalimentación sea instantáneo. Sin uno, estás volando a ciegas.
Si tú, como mi yo pasado, has sido traumatizado por una mala experiencia con regex — dale otra oportunidad. Abre el comprobador de regex, escribe algo simple como hello, y mira cómo se ilumina. Luego añade un punto. Luego un asterisco. De repente eres un mago. Y esta vez, no llorarás.