ForHosting KIT · Utilidades de desarrollo

Extraer grupos de captura con nombre de un patrón regex

Pegue un patrón como (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) y obtenga sus grupos con nombre en orden: year, month y day. El patrón se comprueba pero no se ejecuta, listo para documentarlo o para preparar plantillas de reemplazo. 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
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
Obtiene
Grupos con nombre
year, month, day
Cantidad
3

<name>...) frente a los grupos numerados solos. Esta capacidad acepta un único cuerpo regex ECMAScript, valida que el patrón compile y devuelve la lista ordenada de identificadores de grupos de captura con nombre que declara.

Para qué sirven los grupos de captura con nombre

Un grupo de captura con nombre se escribe con un paréntesis de apertura, un signo de interrogación, un nombre entre los signos menor que y mayor que, el subpatrón y un paréntesis de cierre, como en (?<year>\d{4}). Cuando hay coincidencia, esos nombres se convierten en etiquetas legibles: el código lee el año por su nombre en lugar de adivinar qué grupo numerado lo contiene. Por eso los patrones largos de bibliotecas compartidas, analizadores de formularios y validadores suelen nombrar sus grupos: quien hereda el patrón ve qué captura cada parte.

Listar los nombres sin buscar coincidencias

Antes de escribir plantillas de reemplazo, generar tipos para un validador u ofrecer marcadores como $<name> en una pantalla de edición, usted necesita la lista exacta de nombres que define el patrón. La herramienta comprueba que el patrón sea válido y lee los nombres de izquierda a derecha, en el orden en que se declaran. Los grupos sin nombre y los grupos sin captura quedan fuera, las aserciones lookbehind no se confunden con nombres y lo que va entre corchetes nunca genera entradas falsas. Un patrón sin grupos con nombre devuelve, sencillamente, una lista vacía.

Qué son los grupos de captura con nombre y por qué listarlos ayuda

En las expresiones regulares ECMAScript, un grupo de captura con nombre se escribe como paréntesis de apertura, signo de interrogación, menor que, un identificador, mayor que, el subpatrón y el paréntesis de cierre: por ejemplo open-paren question-mark less-than year greater-than backslash-d open-brace four close-brace close-paren. Cuando una coincidencia tiene éxito, el motor expone esos nombres en el objeto groups para que el llamador lea match.groups.year en lugar de match[1].

Listar los nombres sin ejecutar una coincidencia es útil siempre que documente un patrón, genere tipos TypeScript para un validador o construya una interfaz que ofrezca tokens de reemplazo como dollar-less-than name greater-than. Los grupos capturadores sin nombre y los no capturadores se ignoran en la lista de nombres. Las aserciones lookbehind que empiezan con question-mark less-than equals o question-mark less-than exclamation no se tratan como grupos con nombre.

Las clases de caracteres y los paréntesis escapados nunca aportan falsos positivos, de modo que una cadena literal con los caracteres de un abridor de grupo con nombre dentro de corchetes no aparece en el resultado.

Autodocumentar bibliotecas regex

Genere una tabla de identificadores de grupos de captura con nombre para cada patrón de una biblioteca compartida y mantenga la documentación alineada con el código fuente.

¿Los lookbehind se tratan como grupos con nombre?

No. Las aserciones escritas como (? <=...) o (? <!...) se omiten. Solo los grupos de captura (? <name>...) aparecen en la lista.

¿Qué pasa si el patrón no tiene grupos con nombre?

Recibe una lista vacía y un recuento de cero, no un error. Solo se rechaza un patrón que el propio motor de expresiones regulares no acepta, por ejemplo uno con la sintaxis rota.

¿La herramienta prueba el patrón contra un texto?

No. Solo comprueba que el patrón sea válido y lee los nombres de izquierda a derecha, en el orden en que se declaran. No se busca ninguna coincidencia, así que no hace falta texto de ejemplo.

¿Pueden dos grupos compartir el mismo nombre?

No. Los motores actuales rechazan los nombres duplicados al compilar el patrón, de modo que la herramienta le avisa con un mensaje claro en lugar de devolver una lista con el mismo nombre dos veces.

¿Cuentan los grupos sin nombre o lo que va entre corchetes?

No. Los grupos numerados normales y los grupos sin captura quedan fuera de la lista, y los caracteres dentro de corchetes o los paréntesis escapados nunca generan un nombre falso, aunque parezcan la apertura de un grupo.

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/regex-named-group-extract

¿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/regex-named-group-extract \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pattern":"(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"}'
{
  "pattern": "(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.regex_named_group_extract",
  "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.

Los grupos de captura con nombre convierten índices opacos de coincidencia en nombres de campo legibles como year, month y email_local; por eso las bibliotecas regex modernas y los validadores API prefieren (? Cuando hereda un patrón largo, genera documentación o conecta un analizador de formularios, a menudo necesita la lista de nombres que el patrón define de verdad antes de escribir plantillas de reemplazo o mapear grupos a JSON. Los patrones sin grupos con nombre tienen éxito con una lista vacía en lugar de un error; solo la sintaxis que el motor rechaza falla con invalid_input.

Qué son los grupos de captura con nombre y por qué listarlos ayuda

Este endpoint no ejecuta la regex contra texto de ejemplo; solo valida el patrón y extrae los nombres en orden de definición de izquierda a derecha. Los nombres duplicados fallan en tiempo de compilación en los motores ECMAScript actuales y se muestran como invalid_input con un mensaje claro.

Contrato de entrada, forma de la respuesta y comportamiento de error

El valor debe ser una cadena no vacía de como máximo diez mil caracteres. Patrón vacío, patrón ausente o un tipo que no sea cadena fallan la validación antes de la compilación. Envíe por POST un cuerpo JSON con un campo de cadena obligatorio: pattern, el cuerpo de la expresión regular sin barras envolventes. El manejador compila el patrón con el constructor nativo RegExp; cualquier error de sintaxis, clase sin cerrar, cuantificador incorrecto o nombre de grupo de captura duplicado se convierte en invalid_input y no se factura. En caso de éxito el cuerpo repite pattern, devuelve named_groups como array de cadenas en orden de definición, count como la longitud del array y has_named_groups como bandera booleana de conveniencia. Ejemplo: el patrón de fecha con tres grupos con nombre para year, month y day produce count tres y has_named_groups true. Un emparejador simple de palabras como backslash-w plus sin grupos con nombre produce un array named_groups vacío, count cero y has_named_groups false—sigue siendo una llamada exitosa porque el patrón es válido. Use la herramienta gratuita del navegador para inspección rápida; use la API cuando canalizaciones CI o plugins CMS necesiten una lista estable y legible por máquina de nombres de grupo para cada patrón de un archivo de configuración.

Dónde extraer grupos con nombre aporta valor real

Los sitios de documentación y las guías de estilo que publican bibliotecas regex pueden generar automáticamente una tabla de nombres de grupo por cada patrón sin mantener a mano una lista paralela que se desincroniza. Los constructores de formularios y los analizadores de registros que aceptan patrones del usuario pueden rechazar plantillas que referencian tokens dollar-less-than name greater-than ausentes del patrón, reduciendo sorpresas en tiempo de ejecución. La validación fallida no consume saldo. Las listas de revisión de seguridad suelen preguntar qué campos captura una regex de validación; devolver la lista de nombres desde una API de parseo pequeña es más barato que montar un depurador regex completo en cada pull request.

Validar plantillas de reemplazo

Antes de guardar una regla de replace que use tokens $<name>, confirme que cada nombre existe en la lista named_groups del patrón.

Comprobaciones CI para formularios y logs

Haga fallar una canalización cuando una regex de configuración pretenda capturar email u order_id pero no defina el grupo con nombre correspondiente.

¿Cómo extraigo los grupos de captura con nombre de una regex?

Envíe un cuerpo JSON con pattern igual al cuerpo regex ECMAScript (sin barras). La API devuelve named_groups en orden de definición, más count y has_named_groups.

¿Qué ocurre si el patrón no es válido?

La tarea falla con invalid_input y un mensaje que incluye el error del motor. Los patrones inválidos no se facturan.

¿Un patrón sin grupos con nombre devuelve error?

No. Los patrones válidos con solo grupos numerados o no capturadores tienen éxito con un array named_groups vacío y count cero.

¿Cuánto cuesta extraer grupos con nombre de una regex?

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

Ver la documentación completa del KIT →