знайти та замінити текст у Word C++

Знайти й замінити — це корисна функція MS Word, яка дозволяє оновлювати всі випадки певного тексту одночасно. Таким чином, вам не потрібно вручну знаходити та замінювати текст у всьому документі. У цій статті ви дізнаєтеся, як знаходити та замінювати текст у документах Word із програм C++. Це може бути корисним, коли вам потрібно замінити певний текст у кількох документах за один раз.

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 за допомогою методу Document->Save(String).

У наведеному нижче прикладі коду показано, як знайти та замінити слово «sad» на «bad» у документі 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 за допомогою методу Document->Save(String).

У наведеному нижче прикладі коду показано, як знайти та замінити текст за допомогою регулярного виразу в 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 для розриву розділу
  • & для розриву сторінки
  • &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 надає такі методи для ігнорування тексту в різних сценаріях:

У наведеному нижче прикладі коду показано, як ігнорувати текст у кожному з вищезгаданих сценаріїв.

// Завантажити документ 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 за допомогою документації.

Дивись також