Editor

Esperando entrada o ejecución de expresión regular…

Acciones

?
?
?

Acerca de Probador de Regex Online

Pega algún texto, escribe un patrón regex, activa banderas y ve instantáneamente qué coincide. Este probador de regex usa el mismo motor RegExp que los entornos de ejecución JavaScript modernos, así que lo que ves aquí es lo que obtendrás en tu código frontend, scripts Node.js o validación del lado del servidor. Los grupos de captura nombrados, lookarounds y modo Unicode son compatibles cuando tu entorno de ejecución los admite.

¿Por qué usar este probador de expresiones regulares?

  • Coincidencia en tiempo real con un modo "en vivo" opcional para volver a ejecutar mientras escribes
  • Lista de coincidencias estructurada con índice inicial, índice final, valor y grupos de captura nombrados
  • Soporte completo de sintaxis RegExp de JavaScript/ECMAScript (mismo motor que tu entorno de ejecución JS)
  • Controles de banderas: g, i, m, s, u, y – combina y experimenta con seguridad
  • Información básica de rendimiento con tiempo de ejecución por prueba en milisegundos
  • Salida de resumen solo en texto para copiar/pegar rápidamente en tickets, documentos o mensajes de commit
  • Excelente para aprender: prototipa patrones sin ejecutar un proyecto completo o suite de pruebas
  • Ideal para tareas cotidianas: análisis de registros, validación, extracción de URL/ID, limpieza rápida de datos
  • La lista de resultados tiene un límite suave para evitar bloqueos de la UI al coincidir textos grandes

🔧 Cómo usar el probador de expresiones regulares for regex-tester

1

1. Pega o escribe tu texto de prueba

Añade el texto que quieres buscar: registros, fragmentos, trozos de CSV, HTML, JSON, cualquier cosa que sea texto plano.

2

2. Escribe tu patrón de expresión regular

Introduce la expresión regular **sin barras circundantes**. Por ejemplo: <code>\b\w+@\w+\.\w+</code> para un patrón básico tipo email, o <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> con grupos nombrados.

3

3. Establece las banderas (g, i, m, s, u, y)

Activa banderas como <code>g</code> (global), <code>i</code> (sin distinguir mayúsculas/minúsculas) o <code>m</code> (multilínea). Internamente, el probador construye <code>new RegExp(pattern, flags)</code> exactamente como lo hace JavaScript.

4

4. Inspecciona coincidencias y grupos

Revisa cada coincidencia con su índice, índice final opcional y grupos de captura. Los grupos nombrados aparecen como un mapa tipo JSON para que puedas copiarlos en fixtures de prueba, analizadores o documentación.

5

5. Copia el resumen

Usa el resumen de texto como un informe rápido: enumera coincidencias con índices y grupos, listo para pegar en tickets, comentarios de revisión de código o hojas de referencia.

Sintaxis de expresiones regulares y detalles del motor

Clases de caracteres y conceptos básicos

Bloques de construcción básicos admitidos por el motor RegExp de JavaScript.

PatrónSignificadoEjemplo
.Cualquier carácter excepto saltos de línea (a menos que esté la bandera <code>s</code>)<code>a.c</code> → coincide con <code>abc</code>
\d, \w, \sDígitos, caracteres de palabra, espacios en blanco<code>\d+</code> → <code>123</code>
\D, \W, \SVersiones negadas de las anteriores<code>\S+</code> → secuencias sin espacios
[abc]Conjunto de caracteres<code>[aeiou]</code> → una vocal única
[^abc]Conjunto negado<code>[^0-9]</code> → no dígito
^, $Inicio y fin de entrada (o línea con <code>m</code>)<code>^Hello</code>, <code>!$</code>

Cuantificadores

Repetición de tokens anteriores, con comportamiento codicioso y perezoso.

PatrónSignificadoEjemplo
?0 o 1 vez<code>colou?r</code> → coincide con <code>color</code> y <code>colour</code>
*0 o más<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 o más<code>\d+</code> → <code>1</code>, <code>123</code>
{n}Exactamente n<code>a{3}</code> → <code>aaa</code>
{n,}Al menos n<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}Entre n y m<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

Grupos, Búsquedas alrededor y Capturas Nombradas

Características más avanzadas proporcionadas por motores modernos de JavaScript.

CaracterísticaSintaxisEjemplo
Grupos de captura(...)<code>(\d{3})-(\d{2})</code> → área + sufijo
Grupos sin captura(?:...)<code>(?:https?|ftp)://</code>
Retrorreferencias\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
Búsquedas anticipadas(?=...), (?!...)<code>\w+(?=! )</code> → palabra antes de <code>! </code>
Búsquedas retrógradas*(?<=...), (?<!...)<code>(?<=#)\w+</code> → texto después de <code>#</code> (*en motores modernos)
Grupos con nombre(?<nombre>...)<code>(?<año>\d{4})</code> → <code>grupos.año</code> en resultados

Banderas (Opciones)

Las banderas del probador se corresponden directamente con las banderas de RegExp de JavaScript.

BanderaNombreEfecto
gGlobalEncuentra todas las coincidencias en lugar de solo la primera
iIgnorar mayúsculas/minúsculasCoincidencia sin distinguir entre mayúsculas y minúsculas
mMultilínea<code>^</code> y <code>$</code> coinciden con límites de línea
sDotAll<code>.</code> también coincide con saltos de línea
uUnicodeHabilita el modo Unicode y los escapes de propiedades en motores modernos
yPegajosoCoincidir solo en el índice actual (usado con <code>lastIndex</code>)

Rendimiento y Seguridad

El motor JavaScript subyacente ejecuta regex de forma síncrona. Para mantener la interfaz de usuario receptiva, el probador limita el número de coincidencias recopiladas (por ejemplo, las primeras 500 coincidencias en modo global). Esto ayuda a evitar saturar la interfaz, pero no reemplaza auditorías completas de rendimiento para patrones complejos o críticos.

Herramientas de Regex en Línea de Comandos

Una vez que tu patrón funcione aquí, puedes reutilizar el mismo regex o uno similar en tu terminal, scripts o trabajos de CI:

Linux / macOS

Buscar con grep (regex extendido)

grep -E 'pattern' file.txt

Encontrar líneas que coincidan con un patrón dado

Buscar y reemplazar con sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

Sustituciones por lotes en archivos de texto

Windows / PowerShell

Búsqueda con regex en PowerShell

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

Encontrar patrones de SSN estilo estadounidense en archivos de registro (ejemplo)

Reemplazo con regex en PowerShell

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

Sustituciones simples basadas en regex

Aplicaciones Prácticas de Regex

Desarrollo Web y Frontend

  • Validar correos electrónicos, nombres de usuario, slugs o IDs personalizados en formularios
  • Extraer parámetros de ruta de URLs o rutas
  • Prototipar rápidamente patrones para validación del lado del cliente
// Validación básica tipo email
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// Parámetros de ruta: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

Registros, Datos y Backend

  • Analizar marcas de tiempo y niveles de líneas de registro
  • Normalizar espacios en blanco y limpiar texto desordenado
  • Extraer IDs, correos electrónicos o referencias de contenido no estructurado
// Colapsar espacios en blanco repetidos
const normalized = text.replace(/\s+/g, ' ').trim();
// Coincidencia simple de línea de registro
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

Limpieza de Datos y Scripts Rápidos

  • Eliminar etiquetas o atributos HTML no deseados antes del análisis
  • Extraer todas las URLs, correos electrónicos o IDs de un bloque largo de texto
  • Preparar campos del conjunto de datos para importar a otro sistema

❓ Frequently Asked Questions

¿Por qué mi expresión regular no coincide con nada?

Errores comunes: 1) Caracteres especiales sin escapar (como ., ?, +), 2) Olvidar la bandera g cuando se esperan múltiples coincidencias, 3) Faltan anclajes (^, $) o límites de palabra (\b), 4) Usar características que tu motor JavaScript aún no admite (como algunas búsquedas hacia atrás). Intenta simplificar el patrón y agregar partes gradualmente.

⏱️¿Qué significa el tiempo de ejecución (ms)?

Cada ejecución se cronometra usando performance.now(). El valor es una medición aproximada de una sola ejecución de cuánto tiempo tardó la expresión regular en ejecutarse en la entrada actual. Es útil para detectar patrones obviamente costosos, pero no es una prueba de referencia completa ni una garantía del rendimiento en producción.

🔍¿Cuál es la diferencia entre el primer modo de coincidencia y el modo global?

Sin la bandera g, JavaScript devuelve solo la **primera** coincidencia (si la hay). Con g, el probador usa input.matchAll() para recopilar **todas** las coincidencias (limitadas a un máximo seguro), incluidos índices y grupos de captura. Usa el modo global siempre que te importen múltiples ocurrencias.

🌍¿Esto admite Unicode y escapes <code>\p{...}</code>?

Sí, cuando tu motor JavaScript lo admita. Habilita la bandera u para activar el modo Unicode, que desbloquea cosas como \p{Letra} o \p{Script=Griego} en navegadores modernos y versiones recientes de Node.js.

⚠️¿Puede esto detectar retroceso catastrófico?

El probador puede indicar patrones lentos a través del tiempo de ejecución, pero no puede prevenir completamente el retroceso catastrófico: el motor subyacente aún se ejecuta de forma sincrónica. Usa esta herramienta como un sistema de alerta temprana, luego prueba y revisa cuidadosamente patrones complejos en tu propio código base.

Pro Tips

Best Practice

Construye tu expresión regular en pequeñas partes. Comienza con algo simple que coincida, luego agrega anclajes, grupos y cuantificadores paso a paso.

Best Practice

Usa grupos de captura con nombre (<code>(?<nombre>...)</code>) siempre que sea posible. Hacen que tus coincidencias sean autodocumentadas y mucho más fáciles de leer durante las revisiones de código.

Best Practice

Ten cuidado con <code>.*</code> y cuantificadores anidados. Pueden causar un retroceso intenso en entradas grandes. Haz los patrones más específicos o limita la repetición con <code>{n,m}</code>.

Best Practice

Al depurar, elimina temporalmente la bandera <code>g</code> y concéntrate en la primera coincidencia para simplificar el modelo mental.

Additional Resources

Other Tools