Probador de expresiones regulares
Escribe un patrón y un texto — las coincidencias se resaltan en vivo, con los grupos de captura listados debajo.
Construir un patrón pieza a pieza
La forma más rápida de llegar a una expresión regular que funcione es sorprendentemente poco glamurosa: empieza escribiendo el texto literal que quieres encontrar, observa cómo se resalta, y solo entonces generalízalo paso a paso — cambia los dígitos por una clase como [0-9]+, permite partes opcionales con un signo de interrogación, ánclalo con ^ o $ una vez que el centro se comporte bien. Como las coincidencias se actualizan en vivo mientras escribes, cada pequeño cambio te da retroalimentación instantánea, y un error aparece en el momento en que lo cometes en lugar de tres ediciones más tarde. Igual de importante es lo que pegas en la caja de texto: incluye líneas que el patrón no debería encontrar, no solo las que sí. Un patrón probado únicamente contra ejemplos felices tiene la costumbre de encontrar coincidencias en media página en cuanto se topa con datos reales.
Los grupos de captura hacen la extracción
Envuelve parte de un patrón entre paréntesis y se convierte en un grupo de captura — el trozo de cada coincidencia que realmente quieres conservar. Un patrón como ([0-9]{2}):([0-9]{2}) ejecutado contra una página de texto no solo encuentra horas; la tabla debajo del texto lista cada coincidencia con el grupo uno guardando las horas y el grupo dos los minutos, además de la posición donde se encontró. Añade el flag g y recoges cada aparición en el texto en lugar de detenerte en la primera. Este es el núcleo honesto de la mayor parte del trabajo cotidiano con regex: no una validación ingeniosa, sino extraer valores estructurados — fechas, números de pedido, precios — de un texto que nunca estuvo pensado para estar estructurado.
Cuando un patrón se cuelga — y la red de seguridad
Algunos patrones son trampas. Anida un cuantificador abierto dentro de otro — la forma clásica es (a+)+ — y con la entrada equivocada el motor prueba un número exponencial de formas de dividir el texto antes de rendirse. En la mayoría de los sitios eso congela toda la pestaña; aquí la comparación se ejecuta en un worker en segundo plano que se detiene tras dos segundos, así que obtienes una explicación en lugar de una página muerta. La cura casi siempre es hacer el patrón más específico, para que el motor tenga menos formas de trocear el mismo texto. Una advertencia honesta: este probador usa el motor de JavaScript, lo cual es ideal si el patrón está destinado a un script o una página web, pero Python y PCRE difieren en algunas construcciones — pruébalo también en el lenguaje final. Cuando los valores que extraes están destinados a un enlace o a una cadena de consulta, el codificador de URL es la siguiente parada natural.
Cómo funciona este probador
Tu patrón se ejecuta contra el texto usando el propio motor de expresiones regulares de JavaScript — el mismo que usará tu código si esto es para un script o una página web. Las coincidencias se resaltan en el texto y se listan debajo con sus grupos de captura.
¿Qué flags son compatibles?
g (global — encuentra todas las coincidencias, no solo la primera), i (sin distinguir mayúsculas/minúsculas) y m (multilínea, para que ^ y $ coincidan con los límites de línea) — los que usarás en la práctica.
¿Por qué mi patrón muestra un error?
La sintaxis de expresiones regulares de JavaScript tiene algunas diferencias respecto a otros lenguajes (PCRE, Python) — un carácter especial sin escapar o una construcción no admitida lanzará un error de sintaxis, mostrado directamente en lugar de un resultado incorrecto silencioso.
¿Se envía mi texto a algún sitio?
No — la comparación se ejecuta íntegramente en tu navegador con JavaScript puro. No se sube nada.
