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:
Suchergebnisse drucken
Der folgende C#-Code bietet zwei Möglichkeiten zur Darstellung Ihrer Suchergebnisse.
- Markieren Sie alle gefundenen Wörter.
- 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.
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.