Odkryj magię programowego wyszukiwania wyrażeń regularnych! W świecie kodowania wyrażenia regularne są jak tajne kody, które pomagają nam znaleźć określone informacje w tekście. W tym artykule dowiesz się, jak wyszukiwać według wyrażeń regularnych w języku C#, aby inteligentnie wyszukiwać dokumenty w różnych formatach plików.
Interfejs API platformy .NET do wyszukiwania wyrażeń regularnych w dokumentach przy użyciu narzędzia Regex
W przypadku wyszukiwania wyrażeń regularnych użyjemy interfejsu API GroupDocs.Search for .NET. Dzięki temu możemy przeszukiwać tekst w plikach o różnych formatach i w folderach, po prostu podając wzorzec wyrażenia regularnego. Ta biblioteka umożliwia nam programowe wyszukiwanie tekstu w szerokiej gamie formatów plików, takich jak dokumenty programu Word, arkusze kalkulacyjne, prezentacje, pliki PDF, pliki znaczników, książki elektroniczne, wiadomości e-mail, dokumenty One Note i archiwa ZIP.
Szczegółową listę obsługiwanych formatów plików można znaleźć w obszernej dokumentacji.
Masz możliwość pobrania bibliotek DLL lub instalatora MSI z sekcji pobierania lub zainstalowania interfejsu API w aplikacji .NET przy użyciu NuGet.
Jak wyszukiwać pliki według wyrażenia regularnego przy użyciu języka C#
Wykonaj poniższe kroki, aby przeprowadzić wyszukiwanie wyrażeń regularnych w wielu plikach o różnych formatach w folderach przy użyciu języka C#: Później możesz łatwo wygenerować podświetlone pliki wyjściowe HTML dla każdego znalezionego dokumentu.
- Utwórz Indeks, podając ścieżkę do folderu.
- Dodaj ścieżkę folderu nadrzędnego katalogu wyszukiwania do utworzonego indeksu.
- Zdefiniuj zapytanie wyszukiwania wyrażeń regularnych.
- Wykonaj wyszukiwanie za pomocą metody wyszukiwania, aby uzyskać wyniki wyszukiwania.
- Teraz możesz iterować po SearchResults, aby utworzyć wynik według własnego uznania.
Wyrażenie regularne użyte w poniższym kodzie identyfikuje wszystkie słowa posiadające następujące po sobie powtarzające się znaki, takie jak; dodał, drewno i zobacz. Poniższy kod C# wykonuje szybkie wyszukiwanie według wyrażenia regularnego w wielu plikach o różnych formatach w folderach.
// Szukaj według RegEx w wielu plikach w wielu folderach przy użyciu języka C#
// Utworzenie folderu indeksu i dodanie do niego folderu dokumentu
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");
// Przygotuj zapytanie i wyszukiwanie wyrażeń regularnych
// Regex ma tutaj na celu identyfikację wszystkich słów zawierających kolejne powtarzające się znaki.
string query = "^(.)\\1{1,}";
SearchResult result = index.Search(query);
Tutaj podkreśliłem wyniki wyszukiwania wyrażeń regularnych powyższego kodu:
Drukowanie wyników wyszukiwania
Poniższy kod C# udostępnia dwa sposoby prezentowania wyników wyszukiwania.
- Zaznacz wszystkie znalezione słowa.
- Drukuj w czytelnym i możliwym do analizy formacie
// Podświetlanie i drukowanie wyników wyszukiwania wyrażeń regularnych dla wszystkich dokumentów
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);
// Drukuję znalezione terminy
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
...
Uzyskanie bezpłatnej licencji lub bezpłatnej wersji próbnej
Darmowa licencja
Uzyskaj [licencję tymczasową] za darmo, aby móc przeglądać tę bibliotekę bez ograniczeń.
Bezpłatny okres próbny
Możesz pobrać bezpłatną wersję próbną z sekcji pobierania.
Wniosek
W tym artykule przyjrzeliśmy się magii wyszukiwania RegEx, aby znaleźć wszystkie słowa posiadające określony wzorzec w różnych dokumentach tekstowych, takich jak pliki DOCX, PDF i TXT, w kilku folderach przy użyciu języka C#. Następnie prezentowaliśmy wyniki wyszukiwania, podkreślając wyszukiwane słowa i drukując je w czytelnym formacie.
Aby uzyskać szczegółowe informacje na temat interfejsu API, czytelnikom zaleca się zapoznanie z dokumentacją.
Wszelkie zapytania lub dodatkowe dyskusje można kierować na dostępne forum.