在本文中,我將演示如何使用 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 的信息。

也可以看看