Найти и заменить — это полезная функция, предоставляемая MS Word, которая позволяет обновлять все вхождения определенного текста одновременно. Таким образом, вам не нужно вручную находить и заменять текст во всем документе. В этой статье вы узнаете, как находить и заменять текст в документах Word из приложений C++. Это может быть полезно, когда вам нужно заменить определенный текст в нескольких документах за один раз.
- C++ API для поиска и замены текста
- Поиск и замена текста в документах Word
- Используйте регулярные выражения для поиска и замены текста
- Заменить текст с помощью метасимволов
- Игнорировать текст во время операции поиска и замены
- Получить бесплатную лицензию
C++ API для поиска и замены текста
Aspose.Words for C++ — это библиотека C++ для создания новых и управления существующими документами Word. API поддерживает широкий спектр базовых и расширенных функций автоматизации Word. Вы можете скачать пакет API или установить его с помощью NuGet.
Install-Package Aspose.Words.Cpp
Поиск и замена текста в документах Word с помощью C++
Ниже приведены шаги по поиску и замене текста в документах Word с помощью Aspose.Words for C++.
- Загрузите документ Word, используя класс Document.
- Замените нужное слово, используя Document->getRange()->Replace(u"sad", u"bad", System::MakeObject ) метод.
- Сохраните обновленный документ Word методом Документ->Сохранить(Строка).
В следующем примере кода показано, как найти и заменить слово «грустный» на «плохой» в документе Word с помощью C++.
// Загрузить документ 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");
Поиск и замена текста с помощью регулярных выражений
Вы также можете определить регулярные выражения, чтобы найти и заменить слова, которые следуют определенному шаблону. Например, вы можете заменить слова «грустный» и «безумный» на слово «плохой». Ниже приведены шаги по поиску и замене слов, соответствующих регулярному выражению в документе Word.
- Загрузите документ Word, используя класс Document.
- Используйте класс Regex для определения регулярного выражения.
- Замените нужное слово, используя Document->getRange()->Replace(System::MakeObjectSystem::Text::RegularExpressions::Regex , u"плохой", варианты) метод.
- Сохраните обновленный документ 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 для 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 для 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 без ограничений пробной версии.
Вывод
В этой статье вы увидели, как найти и заменить текст в документах Word с помощью C++. В пошаговом руководстве и примерах кода показано, как настроить функцию поиска и замены в различных сценариях. Вы можете узнать больше об API автоматизации C++ Word, используя документацию.