Entdecken Sie die Magie der programmatischen Regex-Suche! In der Welt der Codierung sind reguläre Ausdrücke wie Geheimcodes, die uns helfen, bestimmte Informationen im Text zu finden. In diesem Artikel erfahren Sie, wie Sie in C# nach Regex suchen, um Dokumente verschiedener Dateiformate intelligent zu durchsuchen.

.NET-API für die Regex-Suche in Dokumenten durch Regex

Für die Regex-Suche verwenden wir die API GroupDocs.Search for .NET. Dadurch können wir Text in Dateien verschiedener Formate ordnerübergreifend durchsuchen, indem wir einfach das Regex-Muster bereitstellen. Mit dieser Bibliothek können wir Text in einer Vielzahl von Dateiformaten programmgesteuert durchsuchen, z. B. Word-Dokumente, Tabellenkalkulationen, Präsentationen, PDF-Dateien, Markup-Dateien, E-Books, E-Mail-Nachrichten, One Note-Dokumente und ZIP-Archive.

Eine ausführliche Liste der unterstützten Dateiformate finden Sie in der umfassenden Dokumentation.

Sie haben die Möglichkeit, entweder die DLLs oder das MSI-Installationsprogramm aus dem Download-Bereich herunterzuladen oder die API mit NuGet in Ihrer .NET-Anwendung zu installieren.

So suchen Sie in Dateien mit Regex mit C#

Befolgen Sie diese Schritte, um mit C# eine Regex-Suche in mehreren Dateien verschiedener Dateiformate in Ordnern durchzuführen: Später können Sie problemlos die hervorgehobenen HTML-Ausgabedateien für jedes gefundene Dokument generieren.

  • Erstellen Sie einen Index, indem Sie einen Ordnerpfad angeben.
  • Fügen Sie den Pfad des übergeordneten Ordners für das Suchverzeichnis zum erstellten Index hinzu.
  • Definieren Sie die Regex-Suchabfrage.
  • Führen Sie die Suche mit der Search-Methode aus, um die Suchergebnisse zu erhalten.
  • Jetzt können Sie SearchResults iterieren, um eine Ausgabe nach Ihren Wünschen zu erstellen.

Der im unten genannten Code verwendete reguläre Ausdruck identifiziert alle Wörter mit aufeinanderfolgenden wiederholten Zeichen wie; hinzugefügt, Holz, und siehe. Der folgende C#-Code führt die Schnellsuche per Regex in mehreren Dateien unterschiedlicher Dateiformate über Ordner hinweg durch.

// Suche nach RegEx in mehreren Dateien in mehreren Ordnern mit C#

// Erstellen Sie einen Indexordner und fügen Sie den Ordner des Dokuments hinzu
Index index = new Index("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);

Hier habe ich die Regex-Suchergebnisse des obigen Codes hervorgehoben:

Hervorgehobene Ergebnisse der Regex-Suche im HTML-Format

Suchergebnisse drucken

Der folgende C#-Code bietet zwei Möglichkeiten zur Darstellung Ihrer Suchergebnisse.

  1. Markieren Sie alle gefundenen Wörter.
  2. Drucken Sie in einem lesbaren und analysierbaren Format
// Hervorheben und Drucken von Regex-Suchergebnissen für alle Dokumente
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);

    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, indexFolder + "/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter); 
    index.Highlight(document, highlighter);

    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\t\tField: " + field.FieldName);
        Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount);
        // Gefundene Begriffe drucken
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
    }
    Console.WriteLine("===========================================");
}
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.

.NET-API zum Suchen in Dateien und Ordnern

Abschluss

In diesem Artikel haben wir uns mit der Magie der RegEx-Suche befasst, um mithilfe von C# alle Wörter mit einem bestimmten Muster 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 gesuchten Wörter hervorhoben und in einem lesbaren Format ausdruckten.

Ausführliche Informationen zur API finden Leser in der Dokumentation.

Alle Anfragen oder zusätzlichen Diskussionen können an das verfügbare Forum gerichtet werden.

Siehe auch