Esplora la magia dell’utilizzo delle espressioni regolari per effettuare ricerche nel codice Java! Nel mondo della programmazione, pensa alle espressioni regolari come codici segreti che ci aiutano a trovare informazioni specifiche nel testo. Questo articolo ti insegnerà le basi della ricerca con le espressioni regolari in Java, così potrai effettuare ricerche intelligenti tra documenti in diversi formati di file nelle cartelle.

API Java per la ricerca Regex nei documenti tramite Regex

Per eseguire la ricerca Regex, utilizzeremo l’API GroupDocs.Search for Java. Con questa API possiamo cercare testo specifico in file di formati diversi tra cartelle, semplicemente assegnandogli il modello regex. Questo strumento ci consente di cercare testo in vari tipi di file, come documenti Word, fogli di calcolo, presentazioni, file PDF, file Markup, eBook, messaggi e-mail, documenti One Note e archivi ZIP, il tutto in modo programmatico.

Per ottenere un elenco dettagliato dei formati di file supportati, consulta la documentazione dettagliata.

Hai due opzioni per ottenere il file JAR: scaricarlo dalla sezione download o incorporare le ultime configurazioni del repository e delle dipendenze Maven direttamente nelle tue applicazioni Java.

Ricerca nei file con Regex utilizzando Java

Ecco i semplici passaggi su come condurre una ricerca regex in più file di formati diversi all’interno di cartelle utilizzando Java. Successivamente, puoi creare facilmente file di output HTML evidenziati per ciascun documento individuato.

  • Inizia creando un Indice specificando il percorso della cartella.
  • Aggiungi il percorso della cartella principale in cui desideri cercare nell’indice appena creato.
  • Imposta la query di ricerca regex.
  • Utilizzare il metodo di ricerca per eseguire la ricerca e ottenere i risultati.
  • Ora puoi consultare Risultati della ricerca e generare l’output desiderato secondo le tue preferenze.

La regex nel codice seguente rileva parole con caratteri ripetuti consecutivi, come concorda, chiama e presto. Questo codice Java effettua una ricerca veloce utilizzando regex in vari file di formati diversi all’interno di cartelle diverse.

// Regex Cerca più file in cartelle utilizzando Java

// Creare una cartella indice e aggiungervi la cartella del documento
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Preparare la query e la ricerca Regex
// Regex qui serve per identificare tutte le parole che hanno caratteri ripetuti consecutivi.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Di seguito, ho evidenziato i risultati della ricerca regex nel codice fornito:

Risultati evidenziati della ricerca Regex in formato HTML

Stampa dei risultati della ricerca

Il seguente codice Java offre due metodi per visualizzare i risultati della ricerca:

  1. Evidenzia tutte le parole scoperte.
  2. Stampa i risultati in un formato facile da leggere e analizzare.
// Evidenziazione e stampa dei risultati della ricerca Regex per tutti i documenti
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());

        // Stampa dei termini trovati
        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
...

Ottenere una licenza gratuita o una prova gratuita

Licenza gratuita

Ottieni una licenza temporanea gratuitamente per esplorare questa libreria senza vincoli.

Prova gratuita

Puoi scaricare la versione di prova gratuita dalla sezione download.

API Java per la ricerca all'interno di file e cartelle

Conclusione

In questo articolo, abbiamo esplorato le basi delle meraviglie della ricerca Regex per individuare parole con modelli specifici in una vasta gamma di documenti basati su testo come file DOCX, PDF e TXT in più cartelle utilizzando Java. Successivamente, abbiamo presentato i risultati della ricerca evidenziando le parole identificate e stampandole in un formato chiaro.

Per una comprensione approfondita dell’API, i lettori sono incoraggiati a esplorare la documentazione e il riferimento API.

Eventuali domande o ulteriori discussioni possono essere affrontate nel forum.

Guarda anche