Entdecken Sie die Magie der Verwendung regulärer Ausdrücke für die Suche in Ihrem Java-Code! Stellen Sie sich in der Programmierwelt reguläre Ausdrücke wie Geheimcodes vor, die uns helfen, bestimmte Informationen im Text zu finden. In diesem Artikel lernen Sie die Grundlagen der Suche mit regulären Ausdrücken in Java kennen, sodass Sie Dokumente in verschiedenen Dateiformaten ordnerübergreifend intelligent durchsuchen können.

Java-API für die Regex-Suche in Dokumenten durch Regex

Für die Regex-Suche verwenden wir die API GroupDocs.Search for Java. Mit dieser API können wir in Dateien verschiedener Formate ordnerübergreifend nach bestimmtem Text suchen, indem wir ihm einfach das Regex-Muster zuweisen. Mit diesem Tool können wir programmgesteuert nach Text in verschiedenen Dateitypen suchen, z. B. Word-Dokumenten, Tabellenkalkulationen, Präsentationen, PDF-Dateien, Markup-Dateien, E-Books, E-Mail-Nachrichten, One Note-Dokumenten und ZIP-Archiven.

Eine detaillierte Liste der unterstützten Dateiformate finden Sie in der ausführlichen Dokumentation.

Sie haben zwei Möglichkeiten, die JAR-Datei zu erhalten: Laden Sie sie aus dem Download-Bereich herunter oder integrieren Sie die neuesten Repository- und Abhängigkeits-Maven-Konfigurationen direkt in Ihre Java-Anwendungen.

Suchen in Dateien mit Regex unter Verwendung von Java

Hier sind die einfachen Schritte, wie Sie mit Java eine Regex-Suche in mehreren Dateien unterschiedlicher Formate in Ordnern durchführen. Anschließend können Sie mühelos hervorgehobene HTML-Ausgabedateien für jedes gefundene Dokument erstellen.

  • Erstellen Sie zunächst einen Index, indem Sie den Ordnerpfad angeben.
  • Fügen Sie den Pfad des Hauptordners hinzu, in dem Sie im soeben erstellten Index suchen möchten.
  • Richten Sie die Regex-Suchabfrage ein.
  • Verwenden Sie die Suchmethode, um die Suche auszuführen und die Ergebnisse zu erhalten.
  • Jetzt können Sie SearchResults durchgehen und die gewünschte Ausgabe gemäß Ihren Präferenzen generieren.

Der reguläre Ausdruck im folgenden Code erkennt Wörter mit aufeinanderfolgenden wiederholten Zeichen, z. B. „Agree“, „Call“ und „Bald“. Dieser Java-Code führt eine schnelle Suche mithilfe von Regex in verschiedenen Dateien unterschiedlicher Formate in verschiedenen Ordnern durch.

// Regex Durchsucht mehrere Dateien in Ordnern mit Java

// Erstellen Sie einen Indexordner und fügen Sie den Ordner des Dokuments hinzu
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Bereiten Sie die Regex-Abfrage und -Suche vor
// Regex dient hier dazu, alle Wörter zu identifizieren, die aufeinanderfolgende wiederholte Zeichen haben.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Unten habe ich die Ergebnisse der Regex-Suche im bereitgestellten Code hervorgehoben:

Hervorgehobene Ergebnisse der Regex-Suche im HTML-Format

Suchergebnisse drucken

Der folgende Java-Code bietet zwei Methoden zur Anzeige Ihrer Suchergebnisse:

  1. Markieren Sie alle entdeckten Wörter.
  2. Drucken Sie die Ergebnisse in einem Format aus, das leicht zu lesen und zu analysieren ist.
// Hervorheben und Drucken von Regex-Suchergebnissen für alle Dokumente
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());

        // Gefundene Begriffe drucken
        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
...

Erhalten Sie eine kostenlose Lizenz oder eine kostenlose Testversion

Freie Lizenz

Besorgen Sie sich kostenlos eine vorübergehende Lizenz, um diese Bibliothek ohne Einschränkungen zu erkunden.

Kostenlose Testphase

Sie können die kostenlose Testversion herunterladen im Download-Bereich.

Java-API zum Suchen in Dateien und Ordnern

Abschluss

In diesem Artikel haben wir die Grundlagen der Regex-Suche untersucht, um mit Java Wörter mit bestimmten Mustern in verschiedenen textbasierten Dokumenten wie DOCX-, PDF- und TXT-Dateien in mehreren Ordnern zu finden. Anschließend präsentierten wir die Suchergebnisse, indem wir die identifizierten Wörter hervorhoben und in einem übersichtlichen Format ausdruckten.

Um ein umfassendes Verständnis der API zu erhalten, sollten die Leser die Dokumentation und die API-Referenz erkunden.

Alle Fragen oder weitere Diskussionen können im Forum beantwortet werden.

Siehe auch