Extrair @menções de texto
Cole qualquer texto e receba cada @menção uma única vez, na ordem em que apareceu: uma nota que cita @Ada, @Linus e @ADA resulta em @Ada e @Linus, e team@example.com fica de fora. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Extraia @menções de mensagens, comentários, documentos e conversas exportadas sem criar um analisador próprio. A capacidade examina texto simples, retorna cada menção válida uma única vez e mantém a grafia e a ordem da primeira ocorrência. Nomes repetidos são comparados sem diferenciar maiúsculas de minúsculas; assim, @Alex e @ALEX produzem apenas um resultado. Há suporte para nomes com letras e números Unicode, domínios de e-mail são ignorados e uma lista de menções vazia é retornada quando não há tokens correspondentes no conteúdo.
Transforme conversas em uma lista confiável de menções
Publicações sociais, notas de projeto, transcrições de atendimento e exportações de comunidades costumam misturar nomes de usuário com frases comuns. Copiar esses nomes manualmente é demorado, e uma busca ampla pelo sinal de arroba pode capturar endereços de e-mail ou trechos malformados. Este extrator percorre o texto da esquerda para a direita de modo determinístico e retorna um array limpo, pronto para a próxima etapa da aplicação.
Um token começa com @ e continua com letras, números ou sublinhados Unicode. O caractere anterior à arroba precisa ser um limite verdadeiro, e não outro caractere de nome ou outra arroba. Portanto, “consulte @Mina_7” gera uma menção, enquanto o domínio de “equipe@example.com” não é confundido com um usuário.
A pontuação posterior encerra o token. O resultado preserva a ordem da fonte e, se não houver correspondências, contém uma lista vazia em vez de erro ou valor de preenchimento.
Entenda a remoção de duplicatas sem diferenciar maiúsculas
A mesma pessoa pode ser mencionada diversas vezes com capitalizações diferentes, sobretudo quando o conteúdo vem de vários sistemas. Esta capacidade compara os tokens sem diferenciar maiúsculas de minúsculas; por isso, @River, @RIVER e @river contam como uma menção. A forma exata da primeira ocorrência é preservada, sem converter todos os resultados para minúsculas.
Dessa maneira, as etapas seguintes recebem uma lista sem duplicatas e as interfaces mantêm a grafia vista no conteúdo. A ordem da primeira ocorrência também permanece estável. A comparação considera o token completo, inclusive a arroba inicial, e sublinhados e números são partes significativas do nome.
O algoritmo não utiliza rede nem modelo probabilístico. Ele apenas reconhece a sintaxe: não confirma a existência de uma conta, não abre perfis nem conclui que grafias diferentes pertencem à mesma pessoa.
Use regras claras de token em automações
Para integrações previsíveis, envie um objeto com uma string de texto dentro do limite publicado. Texto vazio é válido e retorna uma lista vazia. Letras e caracteres numéricos Unicode são aceitos.
O extrator para em espaços, pontuação, hífens e outros símbolos que não sejam letras, números ou sublinhados. Ele também não inicia um token logo depois de uma letra, número, sublinhado ou outra arroba; essa regra impede resultados enganosos vindos de e-mails e marcadores duplicados. Use o array em roteamento, filas de moderação, preparação de notificações, análises ou indexação, mas valide os nomes na plataforma correspondente quando a existência da conta for importante.
Como a implementação é pura, entradas idênticas sempre geram saídas idênticas.
Casos de uso
Encaminhar mensagens da comunidade
Extraia nomes mencionados e únicos antes de atribuir uma publicação às pessoas ou equipes responsáveis pela resposta.
Limpar conversas exportadas
Crie uma lista pela primeira ocorrência em registros de chat sem capturar domínios de endereços de e-mail.
Indexar menções para análise
Converta comentários livres em arrays estáveis para contagem, filtragem ou associação com dados de plataforma.
Perguntas frequentes
Quais caracteres uma menção pode conter?
Depois de @, ela pode conter letras e números Unicode, além de sublinhados. Outros caracteres encerram o token.
Como as menções duplicadas são tratadas?
Elas são comparadas sem diferenciar maiúsculas de minúsculas. A primeira grafia e a ordem de ocorrência são preservadas.
A ferramenta extrai partes de endereços de e-mail?
Não. Uma menção não pode começar logo após letra, número, sublinhado ou outra arroba, o que exclui domínios comuns.
O que acontece quando não há menções?
A capacidade conclui a solicitação e retorna uma lista de menções vazia.
Ela verifica se um nome de usuário existe?
Não. Ela apenas extrai tokens com formato de menção e não acessa redes sociais nem diretórios de contas.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
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.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/text/extract-mentions \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Thanks @Ada and @Linus for reviewing this with @ADA."}'const res = await fetch("https://api.kit.forhosting.com/text/extract-mentions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Thanks @Ada and @Linus for reviewing this with @ADA."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/extract-mentions",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Thanks @Ada and @Linus for reviewing this with @ADA."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/extract-mentions", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Thanks @Ada and @Linus for reviewing this with @ADA."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Thanks @Ada and @Linus for reviewing this with @ADA."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/extract-mentions", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Thanks @Ada and @Linus for reviewing this with @ADA."
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.extract_mentions",
"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.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_text_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Entenda a remoção de duplicatas sem diferenciar maiúsculas
Portanto, @sam, @sam_2 e @sam2 são três menções distintas.
Use regras claras de token em automações
Campo ausente, valor que não seja string ou entrada muito extensa produz um erro invalid_input, permitindo separar uma solicitação inválida de um conteúdo simplesmente sem menções. A execução pela API custa US$ 0,002 por solicitação.