探索使用正規表示式在 Java 程式碼中進行搜尋的魔力!在編碼世界中,將正規表示式視為密碼,可以幫助我們在文字中找到特定資訊。本文將教您在 Java 中使用正規表示式進行搜尋的基礎知識,以便您可以跨資料夾智慧地搜尋不同文件格式的文件。

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

為了進行正規表示式搜索,我們將使用 GroupDocs.Search for Java API。使用此 API,我們可以跨資料夾搜尋不同格式的文件中的特定文本,只需為其提供正規表示式模式即可。該工具使我們能夠以程式設計方式搜尋各種類型文件中的文本,例如 Word 文件、電子表格、簡報、PDF 文件、標記文件、電子書、電子郵件、One Note 文件和 ZIP 存檔。

若要取得支援的文件格式的詳細列表,請查看詳細文件

您有兩種選擇來獲取 JAR 檔案:從 下載部分 下載它,或將最新儲存庫和依賴項 Maven 配置 直接合併到您的 Java 應用程式中。

使用 Java 透過正規表示式搜尋文件

以下是如何使用 Java 在資料夾內不同格式的多個檔案中進行正規表示式搜尋的簡單步驟。然後,您可以輕鬆地為每個找到的文件建立突出顯示的 HTML 輸出檔案。

  • 首先透過指定資料夾路徑建立索引
  • 在剛剛建立的索引中新增要搜尋的主資料夾的路徑。
  • 設定正規表示式搜尋查詢。
  • 使用 search 方法運行搜尋並取得結果。
  • 現在,您可以瀏覽 SearchResults 並根據您的喜好產生所需的輸出。

下面程式碼中的正規表示式會偵測具有連續重複字元的單字,例如gree、call等。此 Java 程式碼使用正規表示式在不同資料夾內不同格式的各種檔案中進行快速搜尋。

// 正規表示式 使用 Java 跨資料夾搜尋多個文件

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

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

下面,我在提供的程式碼中突出顯示了正規表示式搜尋的結果:

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

列印搜尋結果

以下 Java 程式碼提供了兩種顯示搜尋結果的方法:

  1. 突出顯示所有發現的單字。
  2. 以易於閱讀和分析的格式列印結果。
// 反白並列印所有文件的正規表示式搜尋結果
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
    FoundDocument document = result.getFoundDocument(i);
  
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
 
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
    for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\t\tField: " + field.getFieldName());
        System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());

        // 列印找到的術語
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
            }
        }
    }
}
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
...

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

免費許可證

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

免費試用

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

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

結論

在本文中,我們探索了正規表示式搜尋奇蹟的基礎知識,以使用 Java 在多個資料夾中的各種基於文字的文件(例如 DOCX、PDF 和 TXT 檔案)中尋找具有特定模式的單字。隨後,我們透過突出顯示所識別的單字並以清晰的格式列印它們來展示搜尋結果。

為了全面了解 API,鼓勵讀者探索 文件API 參考

任何問題或進一步討論都可以在論壇中解決。

也可以看看