在本文中,我将演示如何使用 Java 以编程方式查找和替换 Word (DOC/DOCX) 文档中的文本。分步指南和代码示例将涵盖在 Word 文档中查找和替换文本的各种场景。

在 Word 文档中查找和替换文本

MS Word 提供了一种简单的方法来查找和替换文档中的文本。查找和替换文本的流行用例之一可能是在文档中的敏感信息在各个实体之间共享之前删除或替换它们。但是,手动过程可能需要您安装 MS Word 并单独更新每个文档。在这种情况下,它既方便又省时,尤其是当您在桌面或 Web 应用程序中集成了查找和替换功能时。那么让我们开始看看如何在各种场景中使用 Java 查找和替换 Word 文档中的文本。

用于在 Word 文档中查找和替换文本的 Java API

为了实现查找和替换功能,我们将使用 Aspose.Words for Java,它是一个功能强大、功能丰富且易于使用的 Java 平台文字处理 API。您可以使用以下配置 下载 其 JAR 或将其安装在基于 Maven 的应用程序中。

存储库:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

依赖:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.5</version>
    <classifier>jdk17</classifier>
</dependency>

使用 Java 在 Word 文档 (DOC/DOCX) 中查找和替换文本

让我们从解决一个简单的查找和替换场景开始,我们将在输入的 Word 文档中找到单词“Sad”。以下是执行此操作的步骤。

以下代码示例展示了如何使用 Java 在 Word DOCX 文档中查找和替换文本。

// 加载 Word DOCX 文档
Document doc = new Document("document.docx");
// 查找和替换文档中的文本
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// 保存 Word 文档
doc.save("Find-And-Replace-Text.docx");

下面是我们在本文中使用的输入 Word 文档。

使用 Java 在 DOCX 中查找和替换文本

以下是找到并替换单词“sad”后的输出。

查找和替换单词

使用 Java 在 Word DOC/DOCX 中查找和替换相似词

您还可以自定义 API 以根据相似性查找和替换文本。例如,单词“sad”、“mad”和“bad”遵循以“ad”结尾的类似模式。电子邮件 ID 是此类文本的另一个示例。在这种情况下,您可以定义一个正则表达式模式来查找和替换所有具有特定模式的文本出现。以下是实现此目的的步骤。

以下代码示例展示了如何使用 Java 根据特定模式查找和替换相似的单词。

// 加载 Word DOCX 文档
Document doc = new Document("document.docx");
// 查找并替换文档中的相似词
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// 保存 Word 文档
doc.save("Find-And-Replace-Text.docx");

以下是Word文档更新相似词后的截图。

使用Java查找和替换相似词

Aspose.Words 还允许您仅在 Word 文档的页眉/页脚中查找和替换文本。以下是执行此操作的步骤。

以下代码示例展示了如何使用 Java 在 Word 文档的页眉/页脚中查找和替换文本。

// 加载 Word DOCX 文档
Document doc = new Document("document.docx");
// 访问页眉页脚集合
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// 设置查找和替换选项
FindReplaceOptions options = new FindReplaceOptions();
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
footer.getRange().replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// 保存 Word 文档
doc.save("Find-And-Replace-Text.docx");

以下屏幕截图显示了 Word 文档页脚中的更新文本。

查找和替换页脚中的文本

使用 Java 在 Word DOCX 中使用元字符查找和替换文本

当您需要查找和替换分成多行或多段的短语时,可能会出现这种情况。在这种情况下,您必须注意段落、节或换行符。 Aspose.Words for Java 让您可以轻松轻松地处理此类情况。以下是可用于不同中断的元字符:

  • &p: 分节符
  • &b:分节符
  • &m: 分页符
  • &l: 换行符

下面的代码示例演示如何在 Word 文档中查找和替换带有分节符的文本。

// 加载 Word DOCX 文档
Document doc = new Document("document.docx");
// 设置选项
FindReplaceOptions options = new FindReplaceOptions();
// 禁用匹配大小写并仅查找整个单词
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// 用分节符替换文本
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// 保存 Word 文档
doc.save("Find-And-Replace-Text.docx");

以下是输出Word文档的截图。

用元字符查找和替换文本

结论

在本文中,您了解了如何使用 Java 以编程方式查找和替换 Word DOC/DOCX 文档中的文本。已在代码示例的帮助下解决了在 MS Word DOCX 文件中查找和替换文本的各种场景。您可以从 文档 中了解有关 Aspose.Words for Java 的更多信息。

也可以看看