Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
---
date: '2026-07-31'
description: 了解如何使用 GroupDocs.Search 在 Java 中进行正则搜索。本分步教程展示了设置、索引创建以及正则查询示例,以实现快速的文本文档分析。
keywords:
- how to regex search
- regex pattern matching java
- search pdf with regex
- java regex search examples
- regex search tutorial java
lastmod: '2026-07-31'
og_description: 使用 GroupDocs.Search 在 Java 中进行正则搜索,可在 PDF、Word 和文本文件中实现快速模式匹配。按照本指南进行设置、索引文档并运行强大的正则查询。
og_image_alt: 'Developer guide: Regex search in Java using GroupDocs.Search'
og_title: 使用 GroupDocs.Search 在 Java 中进行正则搜索的指南
schemas:
- author: GroupDocs
dateModified: '2026-07-31'
description: Learn how to regex search in Java using GroupDocs.Search. This step‑by‑step
tutorial shows setup, index creation, and regex query examples for fast text document
analysis.
headline: How to Regex Search in Java with GroupDocs.Search Guide
type: TechArticle
- description: Learn how to regex search in Java using GroupDocs.Search. This step‑by‑step
tutorial shows setup, index creation, and regex query examples for fast text document
analysis.
name: How to Regex Search in Java with GroupDocs.Search Guide
steps:
- name: '**Maven Integration:** Add the repository and dependency shown above to
your `pom.xml`.'
text: '**Maven Integration:** Add the repository and dependency shown above to
your `pom.xml`.'
- name: '**Direct Download:** Place the JAR files on your project’s classpath.'
text: '**Direct Download:** Place the JAR files on your project’s classpath.'
- name: '**License Application:** Load the license file at application start‑up.'
text: '**License Application:** Load the license file at application start‑up.'
- name: '**Document Management Systems:** Locate contracts, invoices, or policies
by pattern (e.g., invoice numbers).'
text: '**Document Management Systems:** Locate contracts, invoices, or policies
by pattern (e.g., invoice numbers).'
- name: '**Content Moderation:** Apply regex rules to moderate user‑generated text
in forums or chat apps.'
text: '**Content Moderation:** Apply regex rules to moderate user‑generated text
in forums or chat apps.'
- name: '**Data Extraction:** Pull structured data like order numbers from unstructured
PDFs or Word files.'
text: '**Data Extraction:** Pull structured data like order numbers from unstructured
PDFs or Word files.'
type: HowTo
- questions:
- answer: GroupDocs.Search for Java
question: What is the primary library?
- answer: Add the Maven dependency and instantiate an `Index` object
question: How do I start?
- answer: Yes – use regex queries for content‑filtering scenarios
question: Can I filter content with regex?
- answer: A free trial or temporary license is required for production use
question: Do I need a license?
- answer: Java 8 or higher
question: Which JDK version is supported?
type: FAQPage
tags:
- regex search
- GroupDocs.Search
- Java document processing
- text analysis
title: 使用 GroupDocs.Search 在 Java 中进行正则搜索的指南
type: docs
url: /zh/java/searching/groupdocs-search-java-regex-tutorial/
weight: 1
---

# 如何在 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 开发工具包 (JDK) 8 或更高
- Maven 用于依赖管理
- 基本了解 Java 正则表达式

### 所需库和依赖
将 GroupDocs.Search 添加到你的 Maven 项目中:

```xml
<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](https://releases.groupdocs.com/search/java/) 下载最新的 JAR 包。

### 许可证获取
从 [GroupDocs.License](https://purchase.groupdocs.com/temporary-license/) 获取免费试用或临时许可证,并在应用启动时加载。

## 为 Java 设置 GroupDocs.Search

### 安装信息
1. **Maven 集成:** 将上面显示的仓库和依赖添加到你的 `pom.xml`。
2. **直接下载:** 将 JAR 文件放置在项目的类路径中。
3. **许可证应用:** 在应用启动时加载许可证文件。

```java
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` 类并提供一个用于存放索引文件的文件夹路径。构造函数在首次使用时会创建必要的数据库文件,并为添加和搜索文档做好准备。创建后,可在所有查询中复用同一索引。

```java
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
```

## 如何添加文档
要使文件可搜索,只需使用指向文件路径的 `Document`(或 `DocumentInfo`)实例调用 `index.add`。库会解析内容、提取标记并将其存入索引。此操作可对单个文件或批量文件执行,更新会以增量方式合并。

```java
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
```

## 如何以文本形式执行正则表达式搜索
`RegexQuery` 定义了一种基于正则表达式的搜索查询。使用纯文本模式加载 `RegexQuery`,并将其传递给 `Index` 的 `search` 方法。引擎会在索引标记上评估该模式并返回匹配的文档引用,使一次性查找既快速又简便。

```java
String query1 = "^((.)\\2{1,})";
```

## 如何以对象形式执行正则表达式搜索
`RegexQuery` 也可以构建为对象,并在多次搜索中复用。先定义一次查询,配置如不区分大小写或模糊匹配等选项,然后重复调用 `index.search`。当相同模式应用于多个文档集时,此方式可提升性能。

```java
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
```

## 内容过滤正则使用案例
你可以使用正则自动屏蔽或标记符合特定模式的内容,例如:

- 检测重复字符以进行垃圾邮件过滤
- 查找类似信用卡的序列以进行数据隐私检查
- 提取日期或 ID 以供下游处理

## 实际应用
1. **文档管理系统:** 通过模式(例如发票号码)定位合同、发票或政策。
2. **内容审核:** 在论坛或聊天应用中使用正则规则审核用户生成的文本。
3. **数据提取:** 从非结构化的 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](https://docs.groupdocs.com/search/java/) 获取深入指南、API 参考和示例项目。

---

**Last Updated:** 2026-07-31
**Tested With:** GroupDocs.Search 25.4
**Author:** GroupDocs

```java
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
```

```java
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());
```

## 相关教程

- [精通 GroupDocs.Search Java:高效文档搜索与索引管理](/search/java/searching/groupdocs-search-java-efficient-document-search/)
- [精通 GroupDocs.Search Java:模糊搜索与文档索引指南](/search/java/searching/groupdocs-search-java-fuzzy-document-indexing/)
- [如何在 Java 中使用 GroupDocs.Search 索引文本指南](/search/java/indexing/master-text-indexing-java-groupdocs-search-guide/)
Loading
Loading