發現程式化正規表示式搜尋的魔力!在編碼世界中,正規表示式就像密碼一樣,可以幫助我們在文字中找到特定資訊。本文將向您展示如何在C#中透過正規表示式搜尋來智慧地搜尋各種文件格式的文件。

用於正規表示式的 .NET API 透過正規表示式在文件中搜尋

對於正規表示式搜索,我們將利用 GroupDocs.Search for .NET API。這使我們只需提供正規表示式模式即可跨資料夾搜尋各種格式的文件中的文字。該庫使我們能夠以程式設計方式搜尋各種文件格式的文本,例如 Word 文件、電子表格、簡報、PDF 文件、標記文件、電子書、電子郵件、One Note 文件和 ZIP 存檔。

有關支援的文件格式的詳細列表,請參閱綜合文件

您可以選擇從 下載部分 取得 DLL 或 MSI 安裝程序,也可以使用 NuGet 將 API 安裝到您的 .NET 應用程式中。

如何使用 C# 透過正規表示式在文件中搜尋

請依照下列步驟,使用 C# 在資料夾內各種文件格式的多個文件中執行正規表示式搜尋: 稍後,您可以輕鬆為每個找到的文件產生突出顯示的 HTML 輸出檔。

  • 透過提供資料夾路徑建立 索引
  • 將搜尋目錄的父資料夾路徑新增至已建立的索引。
  • 定義正規表示式搜尋查詢。
  • 使用 Search 方法執行搜尋以獲得搜尋結果。
  • 現在您可以迭代 SearchResults 以根據需要建立輸出。

下面提到的程式碼中使用的正規表示式識別具有連續重複字元的所有單字,例如;補充一下,有木有,看看。以下 C# 程式碼透過正規表示式在跨資料夾的不同檔案格式的多個檔案中執行快速搜尋。

// 使用 C# 透過正規表示式在多個資料夾中的多個檔案中進行搜尋

// 建立索引資料夾並將文件的資料夾新增至其中
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

// 準備正規表示式查詢和搜索
// 這裡的正規表示式是識別所有具有連續重複字元的單字。
string query = "^(.)\\1{1,}"; 
SearchResult result = index.Search(query);

這裡我突出顯示了上述程式碼的正規表示式搜尋結果:

HTML 格式的正規表示式搜尋的突出顯示結果

列印搜尋結果

以下 C# 程式碼提供了兩種顯示搜尋結果的方法。

  1. 突出顯示所有找到的單字。
  2. 以可讀且可分析的格式列印
// 反白並列印所有文件的正規表示式搜尋結果
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);
        // 列印找到的術語
        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
...

取得免費許可證或免費試用

免費許可證

免費取得臨時許可證,不受限制地探索該程式庫。

免費試用

您可以從下載部分下載免費試用版

用於在檔案和資料夾中搜尋的 .NET API

結論

在本文中,我們研究了 RegEx 搜尋的魔力,使用 C# 在多個資料夾中的各種基於文字的文件(例如 DOCX、PDF 和 TXT 檔案)中尋找具有特定模式的所有單字。之後,我們透過突出顯示搜尋的單字並以可讀的格式列印它們來呈現搜尋結果。

有關 API 的全面詳細信息,建議讀者參考文檔

任何詢問或其他討論都可以直接訪問可用的論壇

也可以看看