Немного о поиске и замене в MS Word

Настройки MS Office, Open Office и пр. офисного ПО. Полезные советы и пр. То, чего не найдешь в бескрайних просторах Интернета. Решения тех проблем, которые не решаются типовыми ответами, которые можно получить в техподдержке Майкрософта - а именно: переустановить продукт или купить какой-ть другой лицензионный диск.


Модератор: UncleFather

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1505
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

Немного о поиске и замене в MS Word

Сообщение UncleFather »

Оказывается, Microsoft Office Word обладает широкими возможностями по поиску (и замене). Даже в обычном режиме замены можно делать хитрые операции. Но вот если включить режим «подстановочные знаки» («wildcards»), то можно просто творить чудеса. Эти самые «wildcards» очень близки к так называемым «регулярным выражениям» («regular expressions»), используемых при поиске и замене во многих программах для автоматической обработки текста.

Первый пример

В качестве примера рассмотрим часть текста:
01.JPG

Этот текст нужно отформатировать для вставки на форум phpBB так, чтобы каждая строка текста, начинающаяся со знака «/», за которым идет наименование ключа запуска, а затем, через тире - объяснение действия этого ключа представляла бы собой элемент списка. При этом, наименование ключа запуска должно быть выделено курсивом и жирным шрифтом, а пустое расстояние между строками списка должно быть удвоенным.

Другими словами, каждый символ «/», стоящий в начале строки должен быть заменен на сочетание: два переноса строки и [*] /, затем нужно найти в строке первое сочетание символов «пробел тире пробел» и вставить перед ним сочетание символов [ /b][ /i]

Выполняем первую замену:

  1. В MS Word нажимаем Ctrl+H либо Правка -> Заменить

  2. В поле «Найти» вписываем выражение:

    ^p/

  3. В поле «Заменить на» вписываем выражение:

    ^p^p^p[ *] [ b][ i]/

    Спойлер
    02.JPG
  4. Жмем «Заменить все» и получаем результат:

    Спойлер
    03.JPG

Выполняем вторую замену:

  1. Снова MS Word нажимаем Ctrl+H либо Правка -> Заменить

  2. Устанавливаем галочку «Подстановочные знаки»

  3. В поле «Найти» вписываем выражение:

    (^13^13^13?????b??i?/*)( - )

    Выражение в поиске может содержать несколько наборов круглых скобок, в данном случае два. Сами круглые скобки никак не влияют на поиск, ищет Word то же выражение, как если бы этих скобок не было. А вот все, что находится в скобках, нумеруется. В итоге получаем сколько скобок, столько частей текста и будет возвращено при каждом нахождении такого вхождения. То есть в данном случае каждое найденное вхождение будет состоять из двух частей \1 и \2.

  4. В поле «Заменить на» вписываем выражение:

    \1[/i][/b]\2

    Здесь выражение \1 означает «первый искомый текст» - та первая часть из формулы поиска, которую мы нашли. То есть между первой частью \1 и второй частью \2 найденного текста мы вставляем закрывающие тэги BBCode «/b» и «/i»

    Спойлер
    04.JPG
  5. Жмем «Заменить все» и получаем результат:

    Спойлер
    05.JPG

Второй пример

В качестве примера рассмотрим опять же текст, размещаемый на форуме PHPBB3.

После ввода на мой форум новых BBCode («table», «tr» и «td»), позволяющих оформлять пост в виде таблицы, захотелось мне переоформить пост ОКДП для комплектующих ПК + классификаторы ОКДП и ОКПД из списка в таблицу.

Было так:
01.jpg
Хочется так:
02.jpg
Часть текста старого сообщения:
011.jpg
Часть текста нового сообщения:
012.jpg

То есть нужно:

  1. Найти в тексте последовательность


    ^p^p[ *] [ b]

    и заменить на

    ^p[ tr=row2][ td=1,row2,2][ center][ b]

  2. Включить подстановочные знаки, найти в тексте последовательность

    (<[0-9][0-9][0-9][0-9][0-9][0-9][0-9]>) - (*)/b?:

    и заменить на

    \1[ /b][ /center][ /td][ td=1,row2,30][ b]\2/b][ /td][ td=2,row2,68]

  3. Выключить подстановочные знаки, найти в тексте последовательность

    ^p^p[ tr=row2][ td=1,row2,2] [ center][ b]

    и заменить на

    [ /td][ /tr]^p^p[ tr=row2][ td=1,row2,2]

  4. Найти в тексте последовательность

    [ /b][ /td][ td=2,row2,68]^p

    и заменить на

    [ /b][ /td][ td=2,row2,68]

  5. Найти в тексте последовательность

    ^p^p

    и заменить на пустую строку, без пробелов




PS: Достаточно подробное и хорошее описание возможностей поиска, оказывается :wink: есть во встроенной справке MS Word:

Спойлер
06.JPG

Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение