#504 · Herramienta para desarrolladores

Convertidor de glob a regex

Transforma un patrón glob en una expresión regular anclada que puedes inspeccionar, copiar o adaptar a JavaScript. El conversor diferencia comodines de un solo segmento y recorridos recursivos con **, conserva clases de caracteres básicas y escapa los metacaracteres regex que en glob son literales. También muestra una descomposición de la traducción para que puedas verificar qué significado se ha asignado a cada parte del patrón.

Datos de entrada

Patrón glob
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Pega o carga el contenido que quieres convertir.
  2. Ajusta las opciones específicas del patrón o del lenguaje.
  3. Pulsa el botón principal o usa Ctrl/Cmd + Enter.
  4. Revisa el resultado, el resumen y las advertencias antes de copiar o descargar.

Qué hace esta herramienta para desarrolladores

Produce una regex anclada ^...$ a partir de un subconjunto de glob orientado a rutas.

* se traduce como [^/]*, ** como .*, **/ como un grupo opcional de directorios y ? como [^/]. Los caracteres regex que no son operadores glob se escapan.

No se implementan extglob ni brace expansion. Si el consumidor usa un dialecto glob específico, compara el resultado con su documentación.

Ejemplo

Entrada

src/**/*.test.js

Salida

^src/(?:.*/)?[^/]*\.test\.js$

Casos de uso

  • Migrar una regla glob a una API basada en RegExp.
  • Entender cómo se comportan * y **.
  • Crear tests unitarios para reglas de rutas.
  • Documentar una aproximación regex de un patrón de build.

Consejos para obtener resultados fiables

  • Conserva los anchors si necesitas comparar la ruta completa.
  • Normaliza separadores de ruta antes de aplicar la regex.
  • No asumas que braces como {js,ts} se expanden aquí.
  • Revisa dotfiles por separado si el dialecto original tiene reglas especiales.

Detalles del procesamiento

La conversión procesa el patrón de izquierda a derecha, trata **/ como cero o más directorios y escapa operadores propios de regex que no forman parte del glob.

El resultado está orientado a RegExp de JavaScript y a rutas con /. No reproduce todas las decisiones de Bash, minimatch, micromatch u otros motores.

Preguntas frecuentes

¿Cómo convertir el glob **/*.js en una expresión regular de JavaScript?

La idea es permitir cero o más directorios y luego un nombre que termine en .js. El convertidor genera una regex anclada con esa traducción.

¿Por qué * se convierte en [^/]* en lugar de .*?

Porque un asterisco glob normal suele limitarse al segmento actual. .* permitiría atravesar separadores de directorio y cambiaría el significado.

¿Qué representa **/ al convertir un glob a regex?

Se traduce como un grupo que puede consumir cero o más segmentos de directorio terminados en /.

¿El conversor admite patrones glob con {js,ts} o !(test)?

No en esta versión. Brace expansion y extglob pertenecen a dialectos más avanzados y su semántica cambia entre implementaciones.

¿Puedo usar la regex generada directamente con RegExp en JavaScript?

Sí para el subconjunto soportado. Normaliza las rutas a / y añade flags como i solo si el sistema original era insensible a mayúsculas.

Resumen del procesamiento

MóduloComportamiento
EntradaProcesamiento local en el navegador
SalidaResultado copiable y descargable
RedNo se realizan solicitudes externas

Más herramientas de esta categoría

Consulta el hub de Formato de código y regex para ver validadores, formatters, utilidades de patrones y herramientas relacionadas.