ForHosting KIT · Ferramentas para dev

Extrair grupos de captura nomeados de um padrão regex

Cole um padrão como (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) e receba seus grupos nomeados em ordem: year, month e day. O padrão é conferido, mas nunca executado, pronto para documentação ou modelos de substituição. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Padrão
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
Você obtém
Grupos nomeados
year, month, day
Quantidade
3

<name>...) em vez de grupos numerados isolados. Esta capacidade aceita um único corpo regex ECMAScript, valida que o padrão compila e devolve a lista ordenada de identificadores de grupos de captura nomeados que ele declara.

Para que servem os grupos de captura nomeados

Um grupo de captura nomeado é escrito com um parêntese de abertura, um ponto de interrogação, um nome entre os sinais de menor e maior, o subpadrão e um parêntese de fechamento, como em (?<year>\d{4}). Quando há correspondência, esses nomes viram rótulos legíveis: o código lê o ano pelo nome em vez de adivinhar qual grupo numerado o guarda. Por isso padrões longos de bibliotecas compartilhadas, leitores de formulários e validadores costumam nomear seus grupos: quem herda o padrão enxerga o que cada parte captura.

Listar os nomes sem buscar correspondências

Antes de escrever modelos de substituição, gerar tipos para um validador ou oferecer marcadores como $<name> numa tela de edição, você precisa da lista exata de nomes que o padrão define. A ferramenta confere se o padrão é válido e lê os nomes da esquerda para a direita, na ordem de declaração. Grupos sem nome e grupos sem captura ficam de fora, asserções lookbehind não são confundidas com nomes e o que está entre colchetes nunca gera entradas falsas. Um padrão sem grupos nomeados devolve simplesmente uma lista vazia.

O que são grupos de captura nomeados e por que listá-los ajuda

Em expressões regulares ECMAScript, um grupo de captura nomeado escreve-se como parêntese de abertura, ponto de interrogação, menor que, um identificador, maior que, o subpadrão e o parêntese de fechamento: por exemplo open-paren question-mark less-than year greater-than backslash-d open-brace four close-brace close-paren. Quando uma correspondência tem sucesso, o motor expõe esses nomes no objeto groups para que o chamador leia match.groups.year em vez de match[1].

Listar os nomes sem executar uma correspondência é útil sempre que você documenta um padrão, gera tipos TypeScript para um validador ou monta uma interface que oferece tokens de substituição como dollar-less-than name greater-than. Grupos capturadores sem nome e grupos não capturadores são ignorados na lista de nomes. Asserções lookbehind que começam com question-mark less-than equals ou question-mark less-than exclamation não são tratadas como grupos nomeados.

Classes de caracteres e parênteses escapados nunca geram falsos positivos, de modo que uma string literal com os caracteres de um abridor de grupo nomeado dentro de colchetes não aparece no resultado.

Autodocumentar bibliotecas regex

Gere uma tabela de identificadores de grupos de captura nomeados para cada padrão de uma biblioteca compartilhada e mantenha a documentação alinhada com o código-fonte.

Lookbehinds são tratados como grupos nomeados?

Não. Asserções escritas como (? <=...) ou (? <!...) são ignoradas. Só os grupos de captura (? <name>...) aparecem na lista.

O que acontece se o padrão não tiver grupos nomeados?

Você recebe uma lista vazia e uma contagem de zero, não um erro. Só é recusado um padrão que o próprio motor de expressões regulares não aceita, como um com a sintaxe quebrada.

A ferramenta testa o padrão em algum texto?

Não. Ela só confere se o padrão é válido e lê os nomes da esquerda para a direita, na ordem em que são declarados. Nenhuma correspondência é buscada, então não é preciso texto de exemplo.

Dois grupos podem ter o mesmo nome?

Não. Os motores atuais recusam nomes duplicados ao compilar o padrão, então a ferramenta avisa com uma mensagem clara em vez de devolver uma lista com o mesmo nome duas vezes.

Grupos sem nome ou caracteres entre colchetes entram na lista?

Não. Grupos numerados comuns e grupos sem captura ficam de fora, e caracteres dentro de colchetes ou parênteses escapados nunca geram um nome falso, mesmo quando parecem a abertura de um grupo.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/dev/regex-named-group-extract

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

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"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Os grupos de captura nomeados transformam índices opacos de correspondência em nomes de campo legíveis como year, month e email_local; por isso bibliotecas regex modernas e validadores API preferem (? Quando você herda um padrão longo, gera documentação ou integra um analisador de formulários, muitas vezes precisa da lista de nomes que o padrão realmente define antes de escrever modelos de substituição ou mapear grupos para JSON. Padrões sem grupos nomeados têm sucesso com uma lista vazia em vez de erro; apenas a sintaxe que o motor rejeita falha com invalid_input.

O que são grupos de captura nomeados e por que listá-los ajuda

Este endpoint não executa a regex contra texto de amostra; apenas valida o padrão e extrai os nomes na ordem de definição da esquerda para a direita. Nomes duplicados falham em tempo de compilação nos motores ECMAScript atuais e surgem como invalid_input com uma mensagem clara.

Contrato de entrada, formato da resposta e comportamento de erro

O valor deve ser uma string não vazia de no máximo dez mil caracteres. Padrão vazio, pattern ausente ou um tipo que não seja string falham na validação antes da compilação. Envie por POST um corpo JSON com um campo string obrigatório: pattern, o corpo da expressão regular sem barras envolventes. Em caso de sucesso o corpo ecoa pattern, devolve named_groups como array de strings na ordem de definição, count como o comprimento do array e has_named_groups como flag booleana de conveniência. Exemplo: o padrão de data com três grupos nomeados para year, month e day produz count três e has_named_groups true. Um correspondedor simples de palavras como backslash-w plus sem grupos nomeados produz um array named_groups vazio, count zero e has_named_groups false—ainda assim uma chamada bem-sucedida, porque o padrão é válido. Use a ferramenta gratuita do navegador para inspeção rápida; use a API quando pipelines CI ou plugins CMS precisarem de uma lista estável e legível por máquina dos nomes de grupo de cada padrão em um arquivo de configuração.

Onde extrair grupos nomeados realmente compensa

Sites de documentação e guias de estilo que publicam bibliotecas regex podem gerar automaticamente uma tabela de nomes de grupo para cada padrão sem manter à mão uma lista paralela que diverge. Construtores de formulários e analisadores de log que aceitam padrões do usuário podem recusar modelos que referenciam tokens dollar-less-than name greater-than ausentes do padrão, reduzindo surpresas em tempo de execução. Validação falha não consome saldo. Listas de revisão de segurança costumam perguntar quais campos uma regex de validação captura; devolver a lista de nomes a partir de uma API de parse pequena é mais barato do que montar um depurador regex completo em cada pull request.

Validar modelos de substituição

Antes de salvar uma regra de replace que usa tokens $<name>, confirme que cada nome existe na lista named_groups do padrão.

Checagens CI para formulários e logs

Faça um pipeline falhar quando uma regex de configuração alega capturar email ou order_id mas não define o grupo nomeado correspondente.

Como extraio os grupos de captura nomeados de uma regex?

Envie um corpo JSON com pattern igual ao corpo regex ECMAScript (sem barras). A API devolve named_groups na ordem de definição, mais count e has_named_groups.

O que acontece se o padrão for inválido?

A tarefa falha com invalid_input e uma mensagem que inclui o erro do motor. Padrões inválidos não são cobrados.

Um padrão sem grupos nomeados retorna erro?

Não. Padrões válidos só com grupos numerados ou não capturadores têm sucesso com um array named_groups vazio e count zero.

Quanto custa extrair grupos nomeados de uma regex?

A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.

Ver a documentação completa do KIT →