Contar números no texto
Contar números no texto examina textos comuns, informa quantos grupos numéricos separados eles contêm e devolve as ocorrências exatas na ordem de leitura.
Executar grátis
A ferramenta reconhece inteiros, valores com sinal, decimais padrão e decimais iniciados por ponto sem tentar interpretar as palavras ao redor. Ela é útil quando você precisa de um resumo rápido, uma etapa leve de extração ou uma verificação repetível antes de enviar o texto para um fluxo de dados maior. As mesmas regras determinísticas são aplicadas sempre, seja a entrada uma frase, um relatório, um trecho de log ou uma tabela colada.
O que o contador reconhece como número
O analisador considera cada grupo contíguo de inteiro ou decimal uma ocorrência. Ele reconhece valores inteiros como 42, valores com sinal como -7 e +12, decimais comuns como 19.95 e decimais iniciados por ponto como .75. Uma sequência de dígitos permanece unida; portanto, 2026 conta uma vez, não quatro. O sinal pertence ao número quando aparece imediatamente antes do grupo numérico. As ocorrências devolvidas preservam o texto e a ordem originais, permitindo que você veja exatamente o que gerou o total. As regras se concentram de propósito na notação simples de inteiros e decimais. Separadores de milhar, símbolos monetários, percentuais, unidades e pontuação ao redor não são normalizados nem interpretados. Por exemplo, um símbolo monetário fica fora da ocorrência, enquanto o grupo numérico seguinte é contado. A notação científica não é reunida como um valor especial; seus grupos numéricos visíveis seguem o mesmo padrão direto. Essa definição restrita torna os resultados previsíveis em auditorias de conteúdo e pipelines de extração, especialmente quando a fonte mistura prosa, rótulos e medições.
Como ler e conferir o resultado
Envie uma string de texto e consulte count para obter o resumo. O array matches relacionado lista todos os grupos detectados da esquerda para a direita, mantendo sinais, pontos decimais e dígitos exatamente como foram escritos. Esse segundo campo ajuda no controle de qualidade: se um documento produzir um total inesperado, você poderá examinar as ocorrências e descobrir se a fonte usa uma notação fora das regras aceitas. Texto vazio é válido e devolve zero com um array vazio, enquanto um campo ausente ou que não seja string é rejeitado como entrada inválida. Essa diferença impede que dados ausentes sejam confundidos com um documento sem números. A implementação faz uma única varredura limitada e não acessa a rede, chama modelos, usa interpretação regional nem altera o texto. Assim, chamadas repetidas com a mesma string produzem o mesmo JSON. Ao integrar o endpoint, guarde a lista junto ao total quando precisar de rastreabilidade. Se um painel exigir apenas o total, use a contagem e descarte a lista. Para formatos numéricos muito estruturados, aplique depois um analisador específico do domínio, em vez de presumir que cada string devolvida já seja um valor comercial validado.
Como usar contagens em fluxos práticos
A contagem de números é um sinal compacto para muitas verificações leves. Equipes de conteúdo podem comparar versões e confirmar que um resumo baseado em dados ainda contém a quantidade esperada de valores. Analistas podem conferir notas copiadas antes de transferir medições, enquanto desenvolvedores podem usar o array de ocorrências como primeira etapa de extração em logs, chamados ou exportações de texto. Em sistemas de ingestão, o resultado permite um roteamento simples: texto sem grupos numéricos pode seguir um caminho narrativo, e texto com vários grupos pode ser encaminhado para análise mais profunda. O endpoint também ajuda em testes nos quais um relatório gerado deve conter uma quantidade estável de elementos numéricos, mesmo que os valores mudem. Lembre-se de que a ferramenta conta notação, não significado. Uma data como 2026-07-25 contém três grupos, pois a pontuação separa ano, mês e dia. Uma versão, um identificador ou um número ao lado de letras também pode gerar uma ocorrência. Esses comportamentos ajudam em extrações amplas, mas podem divergir de uma definição semântica específica. Use as evidências devolvidas para aplicar depois suas regras de domínio. O uso no navegador é grátis, e as solicitações automatizadas via API usam o preço-base exibido de US$ 0,002.
Casos de uso
Resumir um relatório
Conte os grupos inteiros e decimais de um relatório narrativo e confira os valores exatos na ordem de leitura.
Validar texto extraído
Confira se uma saída de OCR ou notas copiadas contêm a quantidade esperada de material numérico antes da análise detalhada.
Testar conteúdo gerado
Verifique se um modelo ou informe gerado contém uma quantidade estável de elementos numéricos mesmo quando os valores variam.
Perguntas frequentes
Quanto custa?
A execução no navegador nesta página é grátis. Uma solicitação via API usa o preço-base exibido de US$ 0,002.
Os decimais contam como um único número?
Sim. Um decimal padrão como 12.5 ou iniciado por ponto como .5 conta como um só grupo numérico.
Os sinais de mais e menos fazem parte das ocorrências?
Sim. Quando aparecem imediatamente antes dos dígitos ou do ponto decimal inicial, eles são preservados na ocorrência.
O que acontece com um texto vazio?
Uma string vazia é válida e devolve contagem zero e um array vazio. Um campo ausente ou que não seja string é rejeitado.
A ferramenta entende datas, moedas ou notação científica?
Ela não interpreta significado nem formatos regionais. Conta os grupos simples de inteiros e decimais visíveis e os devolve para conferência.
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/str/count-numbers \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Revenue rose from 12.5 to 18 units across 3 regions."}'const res = await fetch("https://api.kit.forhosting.com/str/count-numbers", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Revenue rose from 12.5 to 18 units across 3 regions."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/count-numbers",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Revenue rose from 12.5 to 18 units across 3 regions."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/count-numbers", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Revenue rose from 12.5 to 18 units across 3 regions."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Revenue rose from 12.5 to 18 units across 3 regions."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/count-numbers", 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": "Revenue rose from 12.5 to 18 units across 3 regions."
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.count_numbers",
"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.
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. |