Probador de patrones glob
WebTodo se ejecuta en tu navegador: no se sube nada
Los globs (`*` `?` `[abc]` y el asterisco doble) parecen demasiado simples para equivocarse, pero hay tres dialectos incompatibles, y el mismo patrón puede no estar de acuerdo sobre la misma ruta entre shell, `.gitignore` y `.dockerignore`. Una barra inicial es un carácter normal en shell pero ancla a la raíz en los otros dos. Un patrón sin barra coincide solo en el nivel actual en shell, pero en cualquier nivel en gitignore (`node_modules` tiene que alcanzar `packages/app/node_modules`, y fallar eso rompe en silencio casi todos los `.gitignore`). Un signo de exclamación inicial no tiene que ver con la coincidencia en shell, pero niega en los otros dos. Así que aquí el dialecto es una opción explícita, y el patrón se muestra además traducido a expresión regular — cuando compruebas la implementación de otro, miras lo mismo en vez de adivinar. ⚠️ El error clásico es meter el patrón directamente en un `RegExp`: en glob el punto es un carácter literal (en regex significa cualquier carácter) y en glob el signo de interrogación es el que significa cualquier carácter (en regex es un cuantificador). La coincidencia resultante parece correcta y significa algo completamente distinto. Esta herramienta escapa según las reglas de glob.
Funciones
- Tres dialectos tratados por separado, cada uno con su propio significado para el asterisco doble, las barras inicial y final, y el prefijo de exclamación
- Cada ruta se reporta como coincidente o no, con las coincidencias resaltadas
- El patrón se muestra como expresión regular para que puedas comprobar otra implementación
- Los patrones negados en gitignore o dockerignore se señalan (una coincidencia ahí significa que no hay que ignorar)
- Tanto las clases de caracteres como `[0-9]` como las negadas como `[!0-9]` funcionan; un corchete sin cerrar se trata como literal en vez de lanzar un error
- Los metacaracteres de regex (punto, más, paréntesis) se escapan, así que `*.js` no coincide con `aXjs`
- Una barra seguida de asterisco doble coincide con `a` misma, y un asterisco doble al principio coincide con `a.ts` en la raíz
- La distinción de mayúsculas se puede desactivar
Cómo se usa
- Pon el patrón en la primera línea y una ruta por línea debajo
- Elige el dialecto que corresponda a lo que estás comprobando
- Lee los veredictos por línea; cuando uno te sorprenda, mira la expresión regular de arriba
- Edita el patrón y los resultados se actualizan mientras escribes
Preguntas frecuentes
- ¿Por qué `*.js` no coincide con `src/a.js`?
- Porque según las reglas de shell un asterisco no cruza un separador de ruta, así que `*.js` coincide solo con los archivos .js del directorio actual. Usa un asterisco doble seguido de barra, o `src/*.js`, para cruzar directorios. Es fácil confundirlo con regex: `.*` en una regex cruza todo por defecto, mientras que un asterisco de glob no cruza una barra — y ahí es exactamente donde los traductores caseros meten la pata y emiten `.*`.
- ¿Por qué un asterisco doble al principio coincide con `a.ts` en la raíz?
- Porque el segmento de asterisco doble más barra significa cualquier número de directorios, incluido ninguno. Quien escribe ese patrón quiere todos los archivos .ts, y uno en la raíz cuenta obviamente, así que ese segmento tiene que poder desaparecer por completo. Muchas implementaciones caseras se saltan esto, y el síntoma es que coincide todo lo que está bajo src y nada de la raíz.
- ¿Qué significa el signo de exclamación en `.gitignore`?
- Negación: vuelve a incluir algo que una regla anterior ignoraba. Así que cuando coincide una regla negada significa «no ignores esto», lo contrario que cualquier otra regla. Por eso se señala aparte aquí. En shell ese mismo carácter significa otra cosa (expansión de historial) y no tiene nada que ver con la coincidencia, así que bajo el dialecto de shell es un carácter literal.
- ¿Puedo validar un `.gitignore` entero con esto?
- Un patrón cada vez. Pon la regla que te genera dudas en la primera línea y lista debajo las rutas relevantes. Pegar el archivo entero no funciona, porque solo la primera línea se lee como patrón. Sacar las dos o tres reglas dudosas y probarlas por separado es mucho más rápido que buscar por qué un archivo no se está ignorando.
Herramientas relacionadas
Probador de regex
TextoPrueba expresiones regulares en el navegador: resaltado en vivo, grupos de captura, vista previa de sustitución y código para cinco lenguajes.
Generador de .gitignore
WebGenera un .gitignore a partir de plantillas de lenguaje, framework, editor y sistema. Las secciones se fusionan y se quitan duplicados. Todo local.
Calculadora CIDR
WebConvierte 192.168.1.0/24 en la dirección de red, la de difusión, la máscara, la máscara comodín y el rango de hosts utilizables. En tu navegador.
Analizador de URL
WebDescompone una URL en esquema, host, puerto, ruta, parámetros y ancla, con cada parámetro en crudo y decodificado. Todo en tu navegador.
Analizador de UA
WebAnaliza un User-Agent: navegador, versión, sistema, tipo de dispositivo y motor, con las reglas que coinciden. Solo coincidencia de patrones.
Códigos de estado HTTP
WebConsulta un código de estado HTTP: significado, clase 1xx–5xx, usos típicos y trampas habituales. También busca por palabra clave. Todo local.