Explore a magia de usar expressões regulares para pesquisar em seu código Java! No mundo da codificação, pense nas expressões regulares como códigos secretos que nos ajudam a encontrar informações específicas no texto. Este artigo ensinará os fundamentos da pesquisa com expressões regulares em Java, para que você possa pesquisar de maneira inteligente documentos em diferentes formatos de arquivo em pastas.

API Java para pesquisa Regex em documentos por Regex

Para fazer a pesquisa Regex, usaremos a API GroupDocs.Search for Java. Com esta API, podemos pesquisar texto específico em arquivos de diferentes formatos em pastas, apenas fornecendo a ele o padrão regex. Esta ferramenta nos permite pesquisar texto em vários tipos de arquivos, como documentos do Word, planilhas, apresentações, arquivos PDF, arquivos de marcação, e-books, mensagens de e-mail, documentos do One Note e arquivos ZIP, tudo de forma programática.

Para obter uma lista detalhada dos formatos de arquivo suportados, consulte a documentação detalhada.

Você tem duas opções para obter o arquivo JAR: baixá-lo na seção de downloads ou incorporar o repositório mais recente e configurações de dependência do Maven diretamente em seus aplicativos Java.

Pesquisando em arquivos com Regex usando Java

Aqui estão as etapas simples de como realizar uma pesquisa regex em vários arquivos de diferentes formatos dentro de pastas usando Java. Depois, você pode criar facilmente arquivos de saída HTML destacados para cada documento localizado.

  • Comece fazendo um Índice especificando o caminho da pasta.
  • Adicione o caminho da pasta principal onde deseja pesquisar no índice que acabou de criar.
  • Configure a consulta de pesquisa regex.
  • Use o método de pesquisa para executar a pesquisa e obter os resultados.
  • Agora, você pode acessar SearchResults e gerar o resultado desejado de acordo com suas preferências.

A regex no código abaixo detecta palavras com caracteres repetidos consecutivos, como concordar, ligar e em breve. Este código Java realiza uma pesquisa rápida usando regex em vários arquivos de diferentes formatos em diferentes pastas.

// Regex Pesquise vários arquivos em pastas usando Java

// Criando uma pasta de índice e adicionando a pasta do documento a ela
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Prepare a consulta e pesquisa Regex
// Regex aqui serve para identificar todas as palavras com caracteres repetidos consecutivos.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Abaixo, destaquei os resultados da pesquisa regex no código fornecido:

Resultados destacados da pesquisa Regex em formato HTML

Imprimindo resultados de pesquisa

O código Java a seguir oferece dois métodos para exibir os resultados da pesquisa:

  1. Destaque todas as palavras descobertas.
  2. Imprima os resultados em um formato fácil de ler e analisar.
// Destacando e imprimindo resultados de pesquisa Regex para todos os documentos
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
    FoundDocument document = result.getFoundDocument(i);
  
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
 
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
    for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\t\tField: " + field.getFieldName());
        System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());

        // Imprimindo termos encontrados
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
            }
        }
    }
}
Document: English.txt
Occurrences: 83
	Field: content
	Occurrences: 82
		acceptance          1
		added               1
		agreeable           1
		agreed              1
		all                 4
		appearance          1
		assurance           1
...
===========================================
Document: Lorem ipsum.docx
	Occurrences: 945
...
Field: content
	Occurrences: 939
		accumsan            39
		class               7
		commodo             40
		convallis           38
		dignissim           35
		efficitur           46
		fringilla           40
		habitasse           2
		laoreet             27
		massa               63
		mattis              31
...

Obtendo uma licença gratuita ou uma avaliação gratuita

Licença gratuita

Obtenha uma licença temporária gratuitamente para explorar esta biblioteca sem restrições.

Teste grátis

Você pode baixar a versão de avaliação gratuita na seção de downloads.

API Java para pesquisa em arquivos e pastas

Conclusão

Neste artigo, exploramos os fundamentos das maravilhas da pesquisa Regex para localizar palavras com padrões específicos em diversos documentos baseados em texto, como arquivos DOCX, PDF e TXT em várias pastas usando Java. Posteriormente, apresentamos os resultados da pesquisa destacando as palavras identificadas e imprimindo-as em um formato claro.

Para uma compreensão completa da API, os leitores são incentivados a explorar a documentação e a Referência da API.

Qualquer dúvida ou discussão adicional pode ser abordada no fórum.

Veja também