Найти и заменить
Вы можете легко перемещаться по документу с помощью клавиатуры и мыши, но если у вас есть много страниц для прокрутки, потребуется довольно много времени, чтобы найти конкретный текст в длинном документе. Это займет больше времени, если вы хотите заменить определенные символы или слова, которые вы использовали в своем документе. Функция “Найти и заменить” позволяет найти последовательность символов в документе и заменить ее другой последовательностью символов.
Aspose.Words позволяет найти определенную строку или шаблон регулярного выражения в документе и заменить его альтернативой без установки и использования дополнительных приложений, таких как: Microsoft Word. Это ускорит многие задачи набора и форматирования, что потенциально сэкономит вам часы работы.
В этой статье объясняется, как применять замену строк и регулярные выражения с поддержкой метахарактеров.
Способы найти и заменить
Aspose.Words Предусмотрены два способа применения операции нахождения и замены с использованием следующего:
- Простая замена строки - чтобы найти и заменить конкретную строку другой, необходимо указать поисковую строку (альфа-цифровые символы), которая будет заменена в соответствии со всеми событиями другой указанной заменой строки. Обе строки не должны содержать символов. Учтите, что сравнение строк может быть чувствительным к случаю, или вы можете быть не уверены в правописании или иметь несколько похожих правописаний.
- *Регулярные выражения * - указать регулярное выражение, чтобы найти точные совпадения строк и заменить их в соответствии с вашим регулярным выражением. Обратите внимание, что слово определяется как состоящее только из буквенно-цифровых символов. Если замена выполняется только целыми словами и строка ввода содержит символы, то фразы не будут найдены.
Кроме того, вы можете использовать специальные метахарактеры с простой заменой строки и регулярными выражениями, чтобы указать перерывы в операции поиска и замены.
Aspose.Words Найти и заменить функциональность на aspose.words.replacing Модуль. Вы можете работать со многими вариантами во время процесса поиска и замены. FindReplaceOptions класс.
Найти и заменить текст с помощью простой замены строки
Вы можете использовать один из replace и replace_regex Способы поиска или замены конкретной строки и возврата количества произведенных замен. В этом случае вы можете указать строку, которая будет заменена, строку, которая заменит все ее события, является ли замена чувствительной к случаю, и будут ли затронуты только отдельные слова.
Следующий пример кода показывает, как найти строку “CustomerName” и заменить ее строкой * “James Bond”*:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Hello _CustomerName_,")
print("Original document text: " + doc.range.text)
doc.range.replace("_CustomerName_", "James Bond", aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD))
print("Document text after replace: " + doc.range.text)
# Save the modified document
doc.save(docs_base.artifacts_dir + "FindAndReplace.simple_find_replace.docx")
Вы можете заметить разницу между документом перед применением простой замены строки:
И после применения простой замены струны:
Найти и заменить текст с помощью регулярных выражений
Регулярное выражение - это шаблон, описывающий определенную последовательность текста. Допустим, вы хотите заменить все двойные случаи слова на одно слово. Затем вы можете применить следующее регулярное выражение, чтобы указать шаблон с двумя словами: ([a-zA-Z]+) \1
.
Используйте replace_regex Способ поиска и замены определенных комбинаций символов путем установки параметра регулярного выражения в качестве шаблона для поиска совпадений.
Следующий пример кода показывает, как заменить строки, которые соответствуют обычному шаблону выражения, определенной строкой замены:
Вы можете заметить разницу между документом перед применением замены строки с регулярными выражениями:
А после нанесения замены строки регулярными выражениями:
Найти и заменить строку с помощью метахарактеров
Вы можете использовать метасимволы в строке поиска или строке замены, если конкретный текст или фраза состоит из нескольких абзацев, разделов или страниц. Некоторые метахарактеры включают &p для перерыва в абзаце, &b для перерыва в секции, &м для перерыва страницы, и &л Для перерыва.
Следующий пример кода показывает, как заменить текст абзацем и перерывом страницы:
Найти и заменить строку в заголовке / футере документа
Вы можете найти и заменить текст в разделе заголовка / футера документа Word, используя HeaderFooter класс.
Следующий пример кода показывает, как заменить текст раздела заголовка в вашем документе:
Вы можете заметить разницу между документом перед применением замены строки заголовка:
И после применения замены струны заголовка:
Пример кода для замены текста нижнего колонтитула в вашем документе очень похож на предыдущий пример кода заголовка. Все, что вам нужно сделать, это заменить следующие две строки:
header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.HEADER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", options)
Со следующим:
header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", options)
Вы можете заметить разницу между документом перед применением замены нижнего колонтитула:
И после применения замены нижнего колонтитула:
Игнорировать текст во время поиска и замены
Применяя операцию поиска и замены, можно игнорировать определенные сегменты текста. Так, некоторые части текста могут быть исключены из поиска, а найти и заменить можно только оставшиеся части.
Aspose.Words предоставляет множество свойств поиска и замены для игнорирования текста. ignore_deleted, ignore_fields, и ignore_inserted.
Следующий пример кода показывает, как игнорировать текст внутри изменений удаления:
Настройка и замена операции
Aspose.Words предоставляет множество различных свойств для поиска и замены текста, таких как применение определенного формата. apply_font и apply_paragraph_formats свойств, используя замещения в моделях замены use_substitutions собственности и других.
Следующий пример кода показывает, как выделить конкретное слово в вашем документе: