この記事では、Javaを使用してプログラムでWord(DOC / DOCX)ドキュメントのテキストを検索および置換する方法を示します。ステップバイステップガイドとコードサンプルでは、Word文書内のテキストを検索して置換するさまざまなシナリオについて説明します。

Word文書内のテキストを検索して置換する

MS Wordは、ドキュメント内のテキストを見つけて置き換える簡単な方法を提供します。テキストの検索と置換の一般的な使用例の1つは、さまざまなエンティティ間で共有される前に、ドキュメント内の機密情報を削除または置換することです。ただし、手動プロセスでは、MS Wordをインストールし、すべてのドキュメントを個別に更新する必要がある場合があります。このような状況では、特にデスクトップまたはWebアプリケーション内に検索機能と置換機能を統合している場合に便利で時間を節約できます。それでは、さまざまなシナリオでJavaを使用してWord文書内のテキストを検索および置換する方法を見てみましょう。

Word文書内のテキストを検索して置換するJavaAPI

検索と置換機能を実装するために、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を使用してWordDOCXドキュメント内のテキストを検索して置換する方法を示しています。

// WordDOCXドキュメントを読み込む
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でテキストを検索して置換する

以下は、「悲しい」という単語を見つけて置き換えた後の出力です。

単語を見つけて置き換える

Javaを使用してWordDOC/DOCXで類似した単語を検索して置換する

APIをカスタマイズして、類似性に基づいてテキストを検索および置換することもできます。たとえば、「sad」、「mad」、「bad」という単語は、「ad」で終わる同様のパターンに従います。電子メールIDは、そのようなテキストのもう1つの例です。このような場合、正規表現パターンを定義して、特定のパターンを持つすべてのテキストオカレンスを検索して置き換えることができます。これを実現するための手順は次のとおりです。

次のコードサンプルは、Javaを使用して特定のパターンに基づいて類似した単語を見つけて置き換える方法を示しています。

// WordDOCXドキュメントを読み込む
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文書のヘッダー/フッター内のテキストを検索して置換する方法を示しています。

// WordDOCXドキュメントを読み込む
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を使用してWordDOCXでテキストを検索してメタ文字に置き換える

複数の行または段落に分割されているフレーズを見つけて置き換える必要がある場合があります。このような場合、段落、セクション、または改行に注意する必要があります。 Aspose.Words for Javaを使用すると、このようなケースを非常に簡単に処理できます。以下は、さまざまなブレークに使用できるメタ文字です。

  • &p: 段落区切り
  • &b: セクションブレーク
  • &m: ページ分割
  • &l: 改行

次のコードサンプルは、Word文書のテキストを検索して段落区切りに置き換える方法を示しています。

// WordDOCXドキュメントを読み込む
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ドキュメントのテキストを検索して置換する方法を説明しました。コードサンプルを使用して、MSWordDOCXファイル内のテキストを検索して置換するさまざまなシナリオに対処しました。 Aspose.Words for Javaの詳細については、ドキュメントを参照してください。

関連項目