查找和替換是 MS Word 提供的一項有用功能,可讓您一次更新所有出現的特定文本。因此,您不必手動定位和替換整個文檔中的文本。在本文中,您將學習如何在 C++ 應用程序中查找和替換 Word 文檔中的文本。當您需要一次替換多個文檔中的特定文本時,這可能很有用。
用於查找和替換文本的 C++ API
Aspose.Words for C++ 是一個用於創建新的和操作現有 Word 文檔的 C++ 庫。 API 支持廣泛的基本和高級 Word 自動化功能。您可以下載 API 包或使用NuGet 安裝它。
Install-Package Aspose.Words.Cpp
使用 C++ 在 Word 文檔中查找和替換文本
以下是使用 Aspose.Words for C++ 在 Word 文檔中查找和替換文本的步驟。
- 使用 Document 類加載 Word 文檔。
- 使用 Document->getRange()->Replace(u"sad", u"bad", System::MakeObject 替換所需的詞) 方法。
- 使用 Document->Save(String) 方法保存更新後的 Word 文檔。
下面的代碼示例展示瞭如何使用 C++ 在 Word 文檔中查找單詞“sad”並將其替換為“bad”。
// 加載 MS Word 文檔
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");
// 查找和替換文本
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));
// 保存更新的文檔
doc->Save(u"updated.doc");
使用正則表達式查找和替換文本
您還可以定義正則表達式以查找和替換符合特定模式的單詞。例如,您可以將單詞“sad”和“mad”替換為“bad”。以下是在 Word 文檔中查找和替換與正則表達式匹配的單詞的步驟。
- 使用 Document 類加載 Word 文檔。
- 使用 Regex 類來定義正則表達式。
- 使用 Document->getRange()->Replace(System::MakeObjectSystem::Text::RegularExpressions::Regex , u"bad", options) 方法。
- 使用 Document->Save(String) 方法保存更新後的 Word 文檔。
以下代碼示例展示瞭如何在 C++ 中使用正則表達式查找和替換文本。
// 加載 MS Word 文檔
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");
// 創建查找和替換選項
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();
// 查找和替換文本
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);
// 保存更新的文檔
doc->Save(u"updated.doc");
使用元字符查找和替換文本
在某些情況下,您要替換的文本可能包括換行符、分段符、分節符等。為了處理這種情況,Aspose.Words for C++ 在搜索和替換字符串中支持以下元字符.
- &p 換段
- &b 用於分節符
- &m 分頁符
- &l 用於手動換行
以下代碼示例顯示如何在 Word 文檔中使用元字符查找和替換文本。
// 加載 MS Word 文檔
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");
// 創建查找和替換選項
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();
// 查找和替換文本
doc->get_Range()->Replace(u"This is Line 1&pThis is Line 2", u"This is replaced line", options);
doc->get_Range()->Replace(u"This is Line 1&mThis is Line 2", u"Page break is replaced with new text.", options);
// 保存更新的文檔
doc->Save(u"updated.doc");
在查找和替換操作期間忽略文本
Aspose.Words for C++ 還允許您在查找和替換操作期間忽略字段中的文本和修訂。 FindReplaceOptions 類允許您指定添加此自定義的選項。 FindReplaceOptions 類提供了以下方法來在不同場景下忽略文本:
- setIgnoreFields(布爾) - Ignores text inside the fields
- setIgnoreDeleted(布爾) - Ignores text inside the delete revisions
- setIgnoreInserted(布爾) - Ignores text inside the insert revisions
以下代碼示例顯示瞭如何在上述每種情況下忽略文本。
// 加載 MS Word 文檔
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");
// 創建查找和替換選項
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();
// 在忽略字段內文本的文檔中替換“e”
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);
// 替換文檔中的“e”,忽略已刪除的文本
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);
// 在忽略插入文本的文檔中替換“e”
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);
// 保存更新的文檔
doc->Save(u"updated.doc");
獲得免費許可證
您可以獲得免費的臨時許可證,以便在沒有評估限制的情況下試用 API。
結論
在本文中,您了解瞭如何使用 C++ 在 Word 文檔中查找和替換文本。分步指南和代碼示例展示瞭如何在不同場景中自定義查找和替換功能。您可以使用 文檔 探索有關 C++ Word 自動化 API 的更多信息。