如何在 Java 中使用 GroupDocs.Search 進行正則表達式搜尋
搜尋成千上萬的文字文件可能像在大海撈針般困難。將 Java 強大的正則表達式引擎與 GroupDocs.Search 結合,正則表達式搜尋 變得輕而易舉。接下來的幾分鐘內,您將看到如何安裝函式庫、建立索引、加入檔案,以及執行簡單的文字型與物件導向的正則表達式查詢。完成後,您即可在任何 Java 應用程式中嵌入強大的模式匹配搜尋功能。
快速解答
- 主要的函式庫是什麼? GroupDocs.Search for Java
- 如何開始? 加入 Maven 相依項目並實例化
Index物件 - 可以使用正則表達式過濾內容嗎? 可以 – 使用正則表達式查詢進行內容過濾
- 需要授權嗎? 需要免費試用或臨時授權才能在正式環境使用
- 支援哪個 JDK 版本? Java 8 或更高版本
正則表達式搜尋是什麼?
正則表達式搜尋讓您能在一次操作中於多個檔案中定位日期、電子郵件地址或重複字元等模式。它將純文字查詢轉換為功能強大的規則式掃描器,能即時抽取或阻擋內容。
為什麼在正則表達式搜尋中使用 GroupDocs.Search?
GroupDocs.Search 只需對文件建立一次索引,之後所有查詢皆使用該索引,搜尋速度 快達 10 倍,相較於直接檔案掃描更有效率。函式庫支援 30+ 檔案格式(PDF、DOCX、XLSX、PPTX、TXT、HTML 等),且可處理上百頁的檔案而不需將整個檔案載入記憶體。
前置條件
- Java Development Kit (JDK) 8 或更高版本
- Maven(用於相依管理)
- 基本了解 Java 正則表達式
必要的函式庫與相依項目
將 GroupDocs.Search 加入您的 Maven 專案:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
或者,從 GroupDocs.Search for Java releases 下載最新的 JAR。
取得授權
從 GroupDocs.License 取得免費試用或臨時授權,並在應用程式啟動時載入。
設定 GroupDocs.Search for Java
安裝資訊
- Maven 整合: 將上述的儲存庫與相依項目加入您的
pom.xml。 - 直接下載: 將 JAR 檔案放置於專案的 classpath 中。
- 授權套用: 在應用程式啟動時載入授權檔案。
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index by specifying a directory.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
System.out.println("Index created successfully at: " + indexFolder);
}
}
核心元件
Index 類別是核心元件,用於儲存從文件中提取的可搜尋標記。它能在不重新讀取原始檔案的情況下快速查找任何詞彙或模式。
如何建立索引
建立索引相當簡單:以儲存索引檔案的資料夾路徑實例化 Index 類別。建構子會在首次使用時建立必要的資料庫檔案,並為加入與搜尋文件做好準備。索引建立後,可在所有查詢中重複使用同一個索引。
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
如何新增文件
要讓檔案可被搜尋,呼叫 index.add,傳入指向檔案路徑的 Document(或 DocumentInfo)實例。函式庫會解析內容、抽取標記,並將其儲存於索引中。此操作可針對單一檔案或批次執行,且更新會以增量方式合併。
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
如何以文字形式執行正則表達式搜尋
RegexQuery 定義了基於正則表達式的搜尋查詢。以純文字模式載入 RegexQuery,然後將其傳遞給 Index 的 search 方法。引擎會對索引標記評估該模式,返回符合的文件參考,使一次性查找快速且簡單。
String query1 = "^((.)\\2{1,})";
如何以物件形式執行正則表達式搜尋
RegexQuery 也可以以物件方式建立,並在多次搜尋中重複使用。先定義查詢一次,設定大小寫不敏感或模糊匹配等選項,然後重複呼叫 index.search。當相同模式應用於多個文件集合時,此方式可提升效能。
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
正則表達式內容過濾使用案例
您可以利用正則表達式自動阻擋或標記符合特定模式的內容,例如:
- 偵測重複字元以進行垃圾郵件過濾
- 找出類似信用卡號的序列以進行資料隱私檢查
- 抽取日期或 ID 以供後續處理
實務應用
- 文件管理系統: 依照模式(例如發票號碼)定位合約、發票或政策。
- 內容審核: 套用正則表達式規則以審核論壇或聊天應用程式中的使用者產生文字。
- 資料抽取: 從非結構化的 PDF 或 Word 檔案中提取訂單編號等結構化資料。
效能考量
- 索引更新: 每當來源檔案變更時呼叫
index.add,以保持結果最新。 - 記憶體管理: 若文件數量超過 100 萬,請啟用增量索引以控制堆積使用量。
- 正則表達式設計: 保持模式簡潔;例如
\\d{4}-\\d{2}-\\d{2}的執行速度比使用大量萬用字元的.*快 3 倍。
結論
您現在已了解 如何在 Java 中使用 GroupDocs.Search 進行正則表達式搜尋,從安裝函式庫、建立索引到執行文字型與物件導向的查詢。這些技巧讓您能在任何 Java 應用程式中加入快速、具模式感知的搜尋功能,無論是建置文件入口網站、合規掃描器,或是資料探勘管線。
常見問題
Q: 文字型與物件型正則表達式查詢在 GroupDocs.Search 中有何差異?
A: 文字型查詢是快速的一行指令,而物件型查詢提供可重複使用、型別安全的定義,可儲存並在多次搜尋中重複使用。
Q: GroupDocs.Search 能否索引非文字文件,例如 PDF 或 Excel 檔案?
A: 可以,函式庫會從 PDF、DOCX、XLSX、PPTX 以及超過 30 種其他格式中抽取可搜尋的文字。
Q: 在新增檔案後,如何更新現有的搜尋索引?
A: 呼叫 index.add 並傳入新增或修改過的文件;函式庫會合併變更而不需重新建構整個索引。
Q: 使用正則表達式與 GroupDocs.Search 時常見的陷阱是什麼?
A: 過於寬鬆的模式(例如 .*)會導致效能下降,且格式錯誤的表達式可能不會返回結果。請先在樣本集合上測試模式。
Q: 在哪裡可以找到更進階的 GroupDocs.Search 教學?
A: 前往 GroupDocs Documentation 取得深入指南、API 參考與範例專案。
最後更新: 2026-07-31
測試版本: GroupDocs.Search 25.4
作者: GroupDocs
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());