ForHosting KIT · Utilidades de desarrollo

Convertidor de patrón glob a regex

Pegue un patrón glob y obtenga la expresión regular que le corresponde: *.js pasa a ser ^.*\.js$, con el punto escapado para que solo coincida con un punto real. También traduce corchetes, signos de interrogación y barras invertidas. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Patrón
*.js
Obtiene
Expresión regular
^.*\.js$
Cuerpo de la expresión regular
.*\.js
Cantidad de comodines
1

Los patrones glob de shell son el lenguaje cotidiano de los filtros de nombres de archivo: el asterisco para cualquier secuencia de caracteres, el interrogante para un solo carácter y las clases entre corchetes para un conjunto o un rango. Las expresiones regulares usan una sintaxis distinta y más densa, y los desarrolladores necesitan a menudo una traducción fiel al cablear un filtro de interfaz, un arnés de pruebas o un fichero de configuración que solo acepta regex. Este convertidor de patrón glob a regex acepta un patrón al estilo shell, lo recorre una sola vez carácter a carácter, asigna cada comodín a su contraparte regex, escapa todo literal que de otro modo sería especial en una expresión regular y devuelve una cadena regex estable más un cuerpo sin anclas cuando usted necesita incrustar el fragmento. El modo de ruta opcional impide que el asterisco y el interrogante crucen la barra, de modo que las reglas por segmento coinciden con el comportamiento de find y de muchos shells.

Cómo se mapean los globs de shell a expresiones regulares

Un glob de shell es un lenguaje de patrones compacto pensado para coincidir con nombres de archivo, no para el análisis completo de texto. El comodín asterisco coincide con cualquier secuencia de caracteres (incluida la secuencia vacía); en este convertidor el mapeo por defecto es la construcción regex punto-asterisco, mientras que el modo de ruta mapea el asterisco a una clase de caracteres que excluye la barra seguida de un cuantificador asterisco, de modo que un solo asterisco no puede tragar separadores de directorio.

El interrogante coincide con exactamente un carácter; el modo por defecto usa un solo punto y el modo de ruta usa una clase de un solo carácter que no es barra. Las expresiones entre corchetes como a-z o abc se convierten en la clase de caracteres regex correspondiente. La negación en shell usa un signo de exclamación justo después del corchete de apertura, y esta herramienta lo reescribe como clase negada con circunflejo para que los motores que solo conocen la negación con circunflejo sigan funcionando.

También se acepta un circunflejo justo después del corchete de apertura como negación. La barra invertida antes de un carácter fuerza que ese carácter se trate como literal aunque sea asterisco, interrogante o corchete de apertura. Todo carácter ordinario especial en expresiones regulares —punto, más, paréntesis, llaves, barra vertical, circunflejo, dólar y similares— se escapa para que un fragmento de nombre como report.v2 no signifique accidentalmente report seguido de cualquier carácter seguido de v2.

La expansión de llaves de la forma llave a coma b llave es preprocesamiento del shell, no coincidencia glob, por lo que las llaves permanecen como literales en la regex de salida en lugar de convertirse en grupos de alternancia.

Cuándo conviene pasar un glob a regex

Los filtros de producto en el frontend suelen empezar como globs amigables (asterisco para cualquier sufijo, interrogante para un marcador de posición) mientras el índice de búsqueda o la base de datos solo aceptan expresiones regulares; convertir en el borde mantiene simple el lenguaje del producto y correcto el motor de consultas.

Las suites de pruebas y los scripts de CI que aceptan globs de inclusión y exclusión pueden compilar esos globs una vez en objetos regex y reutilizarlos en miles de comprobaciones de ruta sin reimplementar ad hoc las reglas del shell. Los flujos de revisión de seguridad y de búsqueda de código a veces necesitan mostrar qué significa realmente un glob heredado en forma regex antes de aprobar un cambio de regla. La validación fallida no consume saldo.

Filtros de UI en glob, motores que exigen regex

Acepte patrones orientados al usuario como *.png o report-????.csv y compílelos en regex ancladas para coincidencia en el cliente o en el servidor.

Documentación y enseñanza de comodines

Muestre en paralelo qué se convierte un glob de shell en expresión regular para que el alumnado vea escapes, clases y anclas con claridad.

¿Qué comodines están admitidos?

Asterisco (*) para cualquier secuencia, interrogante (?) para un carácter, clases entre corchetes ([abc], [a-z], [! x] o [^x] para negación) y escapes con barra invertida del carácter siguiente. La expansión de llaves no se trata como comodín.

¿Por qué se escapa el punto del nombre de archivo?

En una expresión regular, un punto suelto significa cualquier carácter, así que report.v2 coincidiría también con report seguido de cualquier carácter y v2. Todo carácter especial se escapa para que las partes literales sigan siendo literales.

¿Qué cambia el modo de rutas?

Con el modo de rutas activado, el asterisco y el signo de interrogación se detienen en la barra, de modo que un solo asterisco no se traga los separadores de carpetas, igual que en find y muchas consolas. Sin él, ambos aceptan cualquier carácter.

¿Se expanden las llaves como {a,b}?

No. Las llaves son un paso previo de la consola, no parte del patrón glob, así que quedan como caracteres literales en la expresión regular en lugar de convertirse en alternativas.

¿Puedo obtener la expresión sin los anclajes de inicio y fin?

Sí. Por defecto el resultado va envuelto entre ^ y $ para coincidir con el texto completo, pero también puede tomar solo el cuerpo, listo para insertarlo dentro de un patrón mayor.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/glob-to-regex

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/glob-to-regex \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pattern":"*.js"}'
{
  "pattern": "*.js"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.glob_to_regex",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Campos de entrada, forma de la respuesta y modos de fallo

El booleano opcional anchored (predeterminado true) envuelve la expresión terminada con circunflejo y dólar para que la regex coincida con toda la cadena candidata; ponga anchored en false cuando solo necesite el cuerpo para componerlo dentro de un patrón mayor. Las clases de caracteres pueden incluir un corchete de cierre literal como primer miembro tras el abridor o el marcador de negación, según la práctica POSIX y de shell habitual. Una barra invertida final solitaria se trata como barra invertida literal y no como escape incompleto. Envíe un cuerpo JSON con el campo de cadena obligatorio pattern (alias glob, pattern_glob, wildcard) que contenga el glob de shell que desea traducir. El booleano opcional path_mode (predeterminado false) activa asterisco e interrogante conscientes de la barra. En caso de éxito la respuesta repite pattern, path_mode y anchored; devuelve regex (la expresión completa que puede alimentar a un motor regex); devuelve regex_body (la misma traducción sin las anclas exteriores); informa wildcard_count para que vea cuántos tokens de asterisco, interrogante o clase se encontraron; e incluye una cadena formula breve que resume el mapeo en vigor. Un pattern vacío, no cadena, patrones de más de dos mil cuarenta y ocho caracteres, clases de caracteres sin cerrar, clases vacías y rangos invertidos como z-a fallan con invalid_input y no se facturan.

Dónde una API de glob a regex aporta valor

Como la implementación es parse puro de tier A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente. Mantenga los patrones cortos, fije las cadenas regex devueltas en las pruebas y obtendrá traducciones reproducibles para widgets, SDK y workers de borde sin levantar un shell ni una biblioteca fnmatch propia de cada lenguaje.

Reglas de inclusión y exclusión en CI

Traduzca los globs del proyecto a regex con path_mode para que ejecutores de pruebas y linters apliquen las mismas reglas por segmento sin reanalizar globs en cada archivo.

¿Cómo convierto un patrón glob en una expresión regular?

Haga POST de un cuerpo JSON con pattern igual a su glob de shell (por ejemplo *.js). La API devuelve regex (anclada por defecto) y regex_body. Ponga path_mode en true si * y ? no deben coincidir con la barra.

¿Qué cambia path_mode?

Cuando path_mode es true, * pasa a ser [^/]* y ? a [^/], de modo que ningún comodín cruza un separador de directorio. Cuando es false (predeterminado), pueden coincidir con cualquier carácter, incluida la barra.

¿Por qué recibí invalid_input?

Causas habituales: pattern ausente o vacío, clase '[...]' sin cerrar, clase vacía, rango invertido entre corchetes, pattern que no es cadena, o patrón de más de 2048 caracteres. Esos fallos no se facturan.

¿Cuánto cuesta el convertidor de patrón glob a regex?

La herramienta en el navegador es gratuita. Las peticiones API usan saldo prepago de KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.

Ver la documentación completa del KIT →