ForHosting KIT · Texto e IA

Extrair linhas com regex

Em um log com linhas INFO, WARN e ERROR, a expressão ^ERROR\b deixa só as 2 linhas de erro de 4, sem mudanças e na ordem. Cada linha é testada sozinha, então um curinga nunca invade o registro seguinte. 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
^ERROR\b
Você obtém
Resultado
ERROR database unavailable ERROR request timed out
Correspondências
2
Total de linhas
4

Extraia linhas correspondentes a uma expressão regular quando um log extenso, relatório, despejo de configuração ou texto estruturado tiver muito mais informação do que você precisa. Envie o texto, um padrão regex de JavaScript e flags opcionais; a capacidade testa cada linha completa e devolve apenas as correspondências na ordem original. Ela aceita terminações LF, CRLF e CR, preserva o conteúdo das linhas selecionadas e informa tanto a quantidade encontrada quanto o total examinado. O processamento é determinístico e local, sem modelo ou dependência de rede.

Escreva um padrão para as linhas que você realmente deseja

O padrão é aplicado separadamente a cada linha completa, o que torna as âncoras especialmente úteis. Comece com ^ quando o termo relevante precisar aparecer no início da linha e termine com $ quando os caracteres finais forem importantes. Por exemplo, ^ERROR\b seleciona registros convencionais de erro sem aceitar um rótulo como ERRORS, enquanto \.csv$ mantém nomes de arquivo terminados nessa extensão.

Forneça o código-fonte da expressão regular, e não a notação com barras: digite ^WARN, não /^WARN/. As flags opcionais de JavaScript são informadas em separado. A flag i ignora diferenças entre maiúsculas e minúsculas; as demais mantêm o significado padrão do JavaScript.

Cada linha selecionada volta inalterada e preserva sua posição relativa. As linhas sem correspondência desaparecem, mas a ferramenta não remove espaços, reescreve, ordena, elimina duplicatas nem interpreta o conteúdo. Esse contrato específico beneficia a automação porque entrega um subconjunto previsível da origem, em vez de um resumo capaz de omitir evidências importantes.

Filtre logs e texto estruturado sem alterar as evidências

A filtragem orientada por linhas combina naturalmente com logs de aplicações, saídas de comandos, exportações delimitadas, relatórios de testes e arquivos de configuração. Uma pessoa de suporte pode isolar identificadores de solicitação, códigos de status ou níveis de gravidade antes de anexar um trecho conciso a um incidente. Uma pessoa desenvolvedora pode manter as asserções com falha de uma execução longa.

Um pipeline operacional pode selecionar registros cujos horários, nomes de host ou prefixos de componente sigam uma convenção conhecida. Como o teste ocorre em uma linha por vez, um curinga não alcança acidentalmente o registro seguinte. São reconhecidos limites LF, CRLF do Windows e CR isolado; o texto retornado usa separadores LF estáveis para que comparações posteriores sejam consistentes entre plataformas.

Linhas vazias podem ser escolhidas deliberadamente com ^$. Uma quebra final é tratada como terminador, e não como registro vazio adicional. Além do resultado unido, a resposta traz um array das linhas selecionadas e contagens de correspondências e linhas totais, oferecendo dados convenientes e verificações úteis sem outra etapa de análise.

Valide padrões e integre o resultado com segurança

A capacidade rejeita texto ausente ou vazio, padrões ausentes ou vazios, flags não aceitas ou duplicadas, modos Unicode incompatíveis e expressões que o mecanismo JavaScript não consegue compilar. Uma resposta válida sem correspondências continua útil: contém resultado vazio, array de linhas vazio, contagem encontrada igual a zero e o número de linhas inspecionadas. O texto e o padrão têm limites para manter o consumo de memória previsível no worker de borda e no navegador gratuito.

Ao montar um pipeline, teste cada expressão nova com amostras representativas, use âncoras quando o formato permitir e evite repetições aninhadas desnecessariamente ambíguas. Sem rede, aleatoriedade, relógio ou modelo de linguagem, entradas idênticas geram saídas idênticas.

Isolar entradas de erro

Mantenha somente linhas iniciadas por uma gravidade de erro ou contendo um identificador de solicitação antes da análise do incidente.

Selecionar registros estruturados

Extraia linhas cujos prefixos, status, nomes de arquivo ou identificadores atendam a uma expressão regular precisa.

Reduzir a saída de testes

Preserve asserções com falha e marcadores de diagnóstico de um log de build extenso sem alterar a ordem original.

Devo colocar barras ao redor da expressão regular?

Não. Envie apenas o padrão, como ^ERROR\b. Informe flags como i no campo separado de flags.

O padrão é executado em cada linha ou no texto inteiro?

Ele é executado independentemente em cada linha completa. Uma linha é devolvida uma vez quando há correspondência em qualquer posição.

As linhas correspondentes são modificadas?

Não. Os caracteres e a ordem são preservados. Apenas os separadores do resultado unido são normalizados para LF.

Quanto custa?

Você pode executar gratuitamente a mesma filtragem determinística no navegador.

Como faço para ignorar a diferença entre maiúsculas e minúsculas?

Adicione a opção i, que é informada separadamente da expressão. Com ela, ^error também mantém as linhas que começam com ERROR ou Error. As demais opções comuns de expressões regulares mantêm o significado habitual.

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/str/extract-lines-matching

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/str/extract-lines-matching \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"INFO server started\nERROR database unavailable\nWARN retrying\nERROR request timed out","pattern":"^ERROR\\b"}'
{
  "text": "INFO server started\nERROR database unavailable\nWARN retrying\nERROR request timed out",
  "pattern": "^ERROR\\b"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "str.extract_lines_matching",
  "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.

Use a ferramenta no navegador para uma investigação rápida ou chame a API por US$ 0,002 por solicitação bem-sucedida.

Valide padrões e integre o resultado com segurança

Esses casos retornam invalid_input em vez de produzir silenciosamente um resultado vazio, permitindo distinguir um erro de digitação em uma regra automática de um padrão válido que não encontrou nada. Consuma o array quando precisar de JSON estruturado ou o resultado unido ao encaminhar o texto filtrado a um arquivo, chamado ou outro comando. A automação pela API custa US$ 0,002 por solicitação bem-sucedida; o navegador é gratuito.

O que acontece quando nenhuma linha corresponde?

A solicitação termina com sucesso, resultado e array vazios, matched_count igual a zero e total_lines com a quantidade inspecionada.

Ver a documentação completa do KIT →