Знайти й замінити — це корисна функція 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 за допомогою методу 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 надає такі методи для ігнорування тексту в різних сценаріях:
- setIgnoreFields(bool) - Ignores text inside the fields
- setIgnoreDeleted(bool) - Ignores text inside the delete revisions
- setIgnoreInserted(bool) - 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 за допомогою документації.