Ontdek de magie van het gebruik van reguliere expressies voor het zoeken in uw Java-code! Denk in de codeerwereld aan reguliere expressies zoals geheime codes die ons helpen specifieke informatie in tekst te vinden. In dit artikel leert u de basisbeginselen van het zoeken met reguliere expressies in Java, zodat u slim door documenten in verschillende bestandsindelingen in verschillende mappen kunt zoeken.

Java API voor Regex Zoeken in documenten via Regex

Voor het uitvoeren van Regex Search gebruiken we de GroupDocs.Search for Java API. Met deze API kunnen we zoeken naar specifieke tekst in bestanden met verschillende formaten in mappen, gewoon door deze het regex-patroon te geven. Met deze tool kunnen we op een programmatische manier naar tekst zoeken in verschillende soorten bestanden, zoals Word-documenten, spreadsheets, presentaties, PDF-bestanden, opmaakbestanden, eBooks, e-mailberichten, One Note-documenten en ZIP-archieven.

Voor een gedetailleerde lijst met ondersteunde bestandsformaten, bekijk de gedetailleerde documentatie.

U heeft twee opties om het JAR-bestand te verkrijgen: download het uit de downloadsectie, of integreer de nieuwste repository en afhankelijkheid Maven-configuraties rechtstreeks in uw Java-applicaties.

Zoeken in bestanden met Regex met behulp van Java

Hier volgen de eenvoudige stappen voor het uitvoeren van een regex-zoekopdracht in meerdere bestanden van verschillende formaten in mappen met behulp van Java. Daarna kunt u moeiteloos gemarkeerde HTML-uitvoerbestanden maken voor elk gevonden document.

  • Begin met het maken van een Index door het mappad op te geven.
  • Voeg het pad toe van de hoofdmap waarin u wilt zoeken in de index die u zojuist hebt gemaakt.
  • Stel de regex-zoekopdracht in.
  • Gebruik de zoekmethode om de zoekopdracht uit te voeren en de resultaten te verkrijgen.
  • Nu kunt u SearchResults doorlopen en de gewenste uitvoer genereren volgens uw voorkeuren.

De regex in de onderstaande code detecteert woorden met opeenvolgende herhaalde tekens, zoals akkoord, call en binnenkort. Deze Java-code voert een snelle zoekopdracht uit met behulp van regex in verschillende bestanden van verschillende formaten in verschillende mappen.

// Regex Zoek meerdere bestanden in mappen met behulp van Java

// Een indexmap maken en de map van het document eraan toevoegen
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Bereid de Regex-query en -zoekopdracht voor
// Regex is hier bedoeld om alle woorden met opeenvolgende herhaalde tekens te identificeren.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Hieronder heb ik de resultaten van de regex-zoekopdracht in de opgegeven code gemarkeerd:

Gemarkeerde resultaten van Regex Search in HTML-indeling

Zoekresultaten afdrukken

De volgende Java-code biedt twee methoden om uw zoekresultaten weer te geven:

  1. Markeer alle ontdekte woorden.
  2. Druk de resultaten af in een formaat dat gemakkelijk te lezen en te analyseren is.
// Markeren en afdrukken van Regex-zoekresultaten voor alle documenten
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());

        // Gevonden termen afdrukken
        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
...

Een gratis licentie of een gratis proefversie verkrijgen

Gratis vergunning

Verkrijg gratis een tijdelijke licentie om deze bibliotheek zonder beperkingen te verkennen.

Gratis proefperiode

U kunt de gratis proefversie downloaden via de downloadsectie.

Java API voor zoeken in bestanden en mappen

Conclusie

In dit artikel hebben we de basisprincipes van Regex-zoekwonderen onderzocht om woorden met specifieke patronen te vinden in een breed scala aan op tekst gebaseerde documenten, zoals DOCX-, PDF- en TXT-bestanden in meerdere mappen met behulp van Java. Vervolgens presenteerden we de zoekresultaten door de geïdentificeerde woorden te markeren en in een duidelijk formaat af te drukken.

Voor een grondig begrip van de API worden lezers aangemoedigd de documentatie en API-referentie te verkennen.

Eventuele vragen of verdere discussies kunnen worden beantwoord in het forum.

Zie ook