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:

Wyróżnione wyniki wyszukiwania wyrażeń regularnych w formacie HTML

Drukowanie wyników wyszukiwania

Poniższy kod C# udostępnia dwa sposoby prezentowania wyników wyszukiwania.

  1. Zaznacz wszystkie znalezione słowa.
  2. 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.

Interfejs API .NET do wyszukiwania w plikach i folderach

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.

Zobacz też