Word шаблоны для поиска

У Word есть мощные возможности поиска, которые позволяют искать вам текст, числа, форматы, параграфы, разрывы страниц, использовать подстановочные символы, коды полей и многое другое. Используя подстановочные символы, вы можете искать просто всё что угодно в вашем документе. Поскольку функция поиска совмещена с заменой, то вы можете также выполнять весьма замысловатые преобразования текста.

Прежде чем мы приступим, поясню пару терминов, которые могут быть не совсем понятными для вас.

Регулярное выражение — это условное обозначение критериев, которым должна соответствовать искомая строка. С помощью регулярных выражений можно найти множество строк или слов, соответствующих заданным условиям.

Подстановочные символы (wildcards) — это * (звёздочка), . (точка) и ? (знак вопроса), которые имеют в регулярных выражениях специальное значение. Например, символ * (звёздочка) обозначает любое количество любых символов, а ? (знак вопроса) означает любой один символ.

Давайте начнём знакомство с продвинутыми возможностями поиска в Word!

Как использовать подстановочные символы в продвинутом поиске

В ленте Word переключитесь на вкладку «Главная» и нажмите кнопку «Заменить»:

В окне «Найти и заменить» кликните «Больше >>», чтобы развернуть диалоговое окно и увидеть дополнительные опции. Если вы увидели кнопку «<< Меньше», значит всё прошло удачно.

В раскрывшемся окне для показа опций поиска, включите флажок «Подстановочные знаки».

Обратите внимание, что после того, как вы включили опцию «Подстановочные знаки», Word сразу под полем «Найти:» показывает, что эта опция включена. Также когда выбран флажок «Подстановочные знаки», некоторые опции становятся недоступными для включения, а именно: «Учитывать регистр», «Только слово целиком», «Учитывать префикс», «Учитывать суффикс».

Теперь нажмите кнопку «Специальный» для просмотра списка подстановочных знаков.

В Word доступны следующие подстановочные символы:

Символ Значение
? Любой знак
[-] Символ в диапазоне
< В начале слова
> В конце слова
() Выражение — единая последовательность символов. Также применяется для обратных ссылок
[!] Не
{;} Число вхождений
@ Предыдущий 1 или более
* Любое число знаков
^t Знак табуляции
^^ Знак крышки
^n Знак столбца
^+ Длинное тире
^= Короткое тире
^g Графический объект
^l Разрыв строки
^m Разрыв страницы / раздела
^~ Неразрывный дефис
^s Неразрывный пробел
^- Мягкий перенос

Наконец выберите подстановочный символ для вставки в ваши критерии поиска. После выбора подстановочного знака, символ добавляется в строку поиска. Когда запомните значения, вы также можете использовать клавиатуру для ввода символов вместо вставки их путём выбора из списка. Меню «Специальный» работает как справка в случае если вы не помните, какие доступны специальные символы и их значения.

Готовые увидеть как работают подстановочные символы? Давайте ознакомимся с конкретными примерами использования регулярных выражений и подстановочных символов в Word.

Для чего используются подстановочные символы?

В меню «Специальный» содержит много специальных символов, которые вы можете использовать для поиска по документу Word, но на самом деле не все они являются подстановочными символами. Большинство из них нужны для поиска каких-то специфичных и, иногда, скрытых символов Word, таких как пробелы, разного вида тире, разрывы страницы.

Здесь мы заострим внимание в первую очередь на подстановочных знаках, которые означают один или более символов текста или модифицируют поиск на основе другого символа в вашем поиске.

Использование звёздочки для указания любого количества символов

Скорее всего, самым часто используемым подстановочным символом для вас станет звёздочка. Она означает, что вы хотите найти любое количество символов. Например, чтобы найти все слова, начинающиеся с «отм», напечатайте «отм*» в строке поиска и затем кликните кнопку «Найти далее». Наше регулярное выражение означает любое количество букв (* звёздочка), следующих после «отм».

В качестве альтернативы ввода символа звёздочки с клавиатуры, вы можете использовать выбор специального символа из списка подстановочных знаком. Вначале наберите «отм» в строке «Найти». Поставьте галочку «Подстановочные знаки». Затем кликните кнопку «Специальный» и выберите «Любое число символов». После этого нажмите кнопку «Найти далее»:

Word оценивает поиск и показывает вам первое вхождение, которое он найдёт в документе. Продолжайте кликать «Найти далее», чтобы найти все части текста, которые соответствуют вашему поисковому термину.

Вы должны помнить важную вещь: при включении подстановочных знаков, поиск автоматически становится чувствительным к регистру (такова особенность регулярных выражений, частью которых являются подстановочные символы). Поэтому поиск «отм*» и «Отм*» даст различные результаты.

Использование знака вопроса для поиска определённого количества символов

В то время как звёздочка означает любое количество символов, знак вопроса в регулярном выражении означает единичный (один) символ. Например, если «отм*» будет искать строки начинающиеся с «отм» за которыми идёт любое количество символов, то «отм?» будет искать строки, начинающиеся с «отм», за которой идёт только один символ.

Как и звёздочку, знак вопроса можно использовать в любой части слова — в том числе в начале и в середине.

Также можно использовать вместе несколько знаков вопроса вместе, тогда они будут обозначать несколько букв.

Например, регулярное выражение для поиска «о?о?о» оно означает букву «о», за которой идёт любой символ, затем снова идёт буква «о», затем опять любой символ и затем опять буква «о» найдёт следующие слова:

  • потоков
  • многополосных
  • многополосных
  • которое
  • правового
  • такового
  • такого основания

Можно найти слова с четырьмя буквами «о», шаблон «о?о?о?о»:

  • которого
  • многополосных

Или с тремя буквами «а», шаблон «а?а?а»:

  • наказания
  • задача
  • аппарата
  • высказана
  • началах

Необязательно использовать одинаковые буквы — составляйте выражения под ваши задачи.

Например, чтобы найти слова, в которых первая буква «з», затем идёт любой другой символ, а затем буква «к» и вновь любой символ, шаблон для поиска «з?к?» найдёт:

  • закономерности
  • законодательно

Использование знака собачка (@) и фигурных скобок ({ and}) для поиска вхождений предыдущего символа

Вы можете использовать знак собачка (@) для указания одного или более вхождения предыдущего символа. Например, «ro@t» найдёт все слова, которые начинаются на «ro» и заканчиваются на «t» и которые имеют любое количество букв «o» между этими частями. Поэтому по этим условиям поиска будут найдены слова «rot», «root» и даже «roooooot».

Для большего контроля поиска предыдущих символов, вы можете использовать фигурные скобки, внутри которые укажите точное число вхождений предыдущего символа, который вы хотите найти. Например, поиск «ro{2}t» найдёт «root», но не найдёт «rot» или «roooooot».

Также поддерживает синтаксис вида {n;} — означает искать количество вхождений символа более n раз; {;m} — означает искать количество вхождений символа менее m раз; {n;m} — означает искать количество вхождений символа более n раз, но менее m раз.

Чтобы показать более практический пример, немного забежим вперёд, следующий поиск использует набор символов (будут рассмотрены в этой статье чуть ниже), в результате, будут найдены все слова, в которых подряд идут четыре согласных буквы:

[бвгджзйклмнпрстфхцчшщ]{4}

Использование угловых скобок (< и >) для обозначения начала и конца слова

Думаю, вы заметили, особенно когда составляли поисковые запросы со звёздочкой, что пробел считается за обычный символ и могут быть найдены довольно неожиданные фрагменты большого размера, либо фрагменты, состоящие из двух слов. Вы можете использовать угловые скобки (символы «больше чем» и «меньше чем») для обозначения начала и конца слова поиска. Например, вы можете искать «<но>» и Word найдёт все вхождения «но», но не найдёт слова вроде «новости», «законодатель».

Это довольно полезно, но эта техника становится более мощной, когда вы комбинируете её с другими подстановочными символами. Например, с помощью «<з????>» вы можете найти все слова, которые начинаются на «з» и состоят ровно из пяти букв.

Вам необязательно использовать обе угловые скобки в паре. Вы можете обозначить просто только начало или конец слова, используя только одну соответствующую скобку. Например «ство>» найдёт слова

  • руководство
  • множество
  • средство
  • количество

Использование квадратных скобок ([ и ]) для поиска определённых символов или диапазонов символов

Вы можете использовать квадратные скобки для указания любых символов или диапазонов символов. Например «[а]» будет искать любые вхождения буквы «а».

В следующем примере, будет искаться строка, которая начинается на «р», затем идёт любая гласная, а затем снова буква «р»: «р[аеиоуэюя]р»

Далее аналогичный пример, но между буквами «р» должно быть две любых гласных: «р[аеиоуэюя]{2}р», будет найдено, к примеру, слово «приоритет».

Вы также можете искать квадратные скобки для поиска диапазонов символов, например «[a-z]» найдёт любую из этих букв в нижнем регистре. Поиск «[0-9]» найдёт любую из этих цифр.

Пример р[а-и]{2}р найдёт строку, которая начинается и заканчивается на букву «р» между которыми две любые буквы из указанного диапазона.

Следующий пример довольно сложный, но при этом и довольно интересный:

[А-Я]{1}[а-я0-9 ,-]{1;}.

В начале строки должна стоят любая заглавная буква ([А-Я]) ровно один раз ({1}). Затем должны идти маленькие буквы, цифры, пробелы, запятые и тире ([а-я0-9 ,-]) хотя бы один раз и более ({1;}), в самом конце должна стоять точка (.)

Думаю вы догадались, что это регулярное выражение которое будет искать предложения. Перечислены не все возможные символы, поэтому не будут найдены предложения, содержащие кавычки и некоторые другие символы, а также вопросительные и восклицательные предложения.

То есть вы можете комбинировать подстановочные символы и дополнять их кванторами количества, а затем это всё комбинировать любое количество раз, пока не получите желаемый результат. На самом деле, это довольно сложно — почти как программирование, поскольку требует абстрактного мышления.

Использование скобок для группировки поисковых терминов в последовательности

Вы можете использовать круглые скобки в вашем поиске для группировки последовательностей символов.

Можно использовать довольно простые шаблоны, например «(го){3;}» найдёт строки, в которых «го» встречается три и более раза подряд.

Но настоящую силу эта конструкция покажет при использовании в операциях поиска и замены.

Показанная далее техника называется «обратные ссылки». Начнём с конкретного примера, чтобы было проще понять. Предположим, нам нужно во всём документе поменять местами два слова, допустим, имя и фамилию. К примеру, во всём тексте множество раз упоминается «Милосердов Алексей», а нам нужно, чтобы было «Алексей Милосердов».

Для этого в строке поиска мы вставляем «(Милосердов) (Алексей)», а в строке «Заменить на» пишем «2 1».

Скобки не участвуют в поиске, то есть в результате будет искаться фраза «Милосердов Алексей» При этом то, что было найдено в первых скобках, будет присвоено как значение «1», а то, что было найдено во вторых скобках, станет значением «2». При этом найденная строка заменится на «Алексей Милосердов».

Можно сделать по-другому, допустим вместо фамилии и имени, я хочу заменить на фамилию и инициалы, тогда в строке поиска я ищу «(Милосердов) (Алексей)», а в строке «Заменить на» пишу «1 А.В.».

В скобках можно писать не только слова, там могут использоваться подстановочные символы в разных сочетаниях, а также кванторы количества. Когда находится целая фраза, то Word автоматически пронумеровывает эти группы слева направо (это происходит «под капотом» — мы это не видим), поэтому в поле «Заменить на» мы можем использовать эти группы по их номеру, перед которым нужно поставить обратный слэш.

Рассмотрим более жизненный пример. Допустим, у нас по всему документу имеются даты вида 31.12.2019 (то есть в формате день.месяц.год), а мы хотим чтобы все эти даты были в формате 2019.12.31 (то есть год.месяц.день).

Тогда для поиска любых дат составляем регулярное выражение с подстановочными символами:

«[0-9]{2}.[0-9]{2}.[0-9]{4}»

«[0-9]» — это диапазон, обозначающий все цифры, «{2}» — это квантор количества, который говорит, что предыдущий символ должен встречаться ровно два раза. То есть будет искаться строка длиной ровно два символа, состоящая из цифр. Затем идёт точка, затем снова аналогичная строка и точка, и в конце строка из четырёх цифр.

Строка подходит для поиска, но чтобы были созданы обратные ссылки, мы заключаем нужные нам элементы в круглые скобки: «([0-9]{2}).([0-9]{2}).([0-9]{4})» — она будет работать точно также, как и предыдущая.

Теперь составляем строку «Заменить на». В начале идёт год, то есть третья группа, она обозначается как «3», затем точка, затем вторая группа, затем опять точка и затем первая группа, получаем «3.2.1».

Используйте обратный слэш () если вам нужно искать символы, которые являются подстановочными знаками

А что если вам нужно найти в документе символ, который используется как подстановочный? Например, если вам нужно найти звёздочку? Если просто её вставите, то она сработает как подстановочный знак и будет найдено всё что угодно. Есть два способа искать символы в их буквальном значении.

Первый способ, это снять галочку с опции «Подстановочные знаки» перед выполнением поиска. Но если вы не хотите это делать, вы можете использовать обратный слэш () перед этим символом. Например, чтобы найти буквальный знак вопроса при включённых «Подстановочных знаках», введите в поле Поиск «?».

Заключение

Вы можете делать весьма сложные поиски и замены комбинируя подстановочные символы в ваших поисках в Word, поэтому продолжайте пробовать с ними. После того, как вы действительно разберётесь, какой потенциал несут регулярные выражения, вы сможете увеличить вашу продуктивность. Нам только следует порекомендовать вам не делать большие операции поиска и замены одновременно для всего документа, если у вас нет полной уверенности что ваши подстановочные символы делают именно то, что вы задумали. Также рекомендуется для этого использовать тестовые копии документов.

Связанные статьи:

  • Как в Microsoft Word сделать массовую замену или удаление текста (74%)
  • Как убрать лишние пробелы в Microsoft Word (74%)
  • Как выделить текст цветом в Word (66.3%)
  • Как вставить музыкальный символ, ноты в Word (57.7%)
  • Как напечатать диапазон страниц документа Word из нескольких разделов (57.7%)
  • Как заблокировать текстовые поля в Word (RANDOM — 50%)

Добрый день!

Есть таблица (в Word) с огромным количеством записей вида:

Иванова Виктория Васильевна 1971 г.р., образование — высшее, Урюпинский государственный педагогический институт, общий стаж работы — 22 года, стаж работы в должности — 3 года.

Необходим шаблон поиска и замены, который оставит в ячейке только ФИО, а остальное удалит.

Пробовал (с включенным чекбоксом «Подстановочные знаки») такой шаблон:
(<*>) (<*>) (<*>)*
менять на
1 2 3
, но выходит так, что он ищет любые три последовательности и один знак после.

Есть кто-нибудь, знакомый с вордовскими регулярками? Есть ощущение, что тут слишком просто, но ступор — вещь сильная ))

UPD:
В итоге (спасибо @dimonchik2013) быстрее всех вариантов сработал вот такой изящный костыль:

  1. Строка поиска: ([А-Я]*>) ([А-Я]*>) ([А-Я]*>) (с включенными подстановочными знаками)
  2. Строка замены: 1 2 3^t
  3. Преобразуем таблицу в текст с разделителем «табуляция»
  4. Преобразуем текст в таблицу с разделителем «табуляция»

Profit!

Использование замены при редактировании больших документов, таких как рукопись книги, позволяет значительно сократить время на подготовку оригинал-макета издания.

Использование выражений при поиске с подстановочными знаками

С помощью круглых скобок сгруппируйте подстановочные знаки в поле Найти, а затем используйте конструкции n в поле Заменить на для ссылки на результаты каждого из выражений.

Для поиска выражения и последующего изменения порядка его компонентов используйте подстановочный знак «n». Например, введите (Селезнев) (Глеб) в поле Найти и 2 1 в поле Заменить на, чтобы найти фразу Селезнев Глеб и заменить ее на Глеб Селезнев.

Подстановочные знаки для поиска и замены элементов

  • Если флажокПодстановочные знаки установлен, выполняется поиск текста, в точности совпадающего с указанным. Обратите внимание на то, что флажки Учитывать регистр и Только слово целиком устанавливаются автоматически и не могут быть сняты пользователем.
  • Чтобы найти знак, который используется как подстановочный, введите перед ним обратную косую черту () (ее часто называют escape-символом). Например, введите?, чтобы найти вопросительный знак, или \, чтобы найти обратную косую черту.
  • Для группировки подстановочных знаков и текста, а также для указания порядка обработки знаков следует использовать круглые скобки. Например, чтобы найти слова «призвание» и «приключение», введите<(при)*(ние)>.

Что требуется найти

Что следует ввести

Пример

Любой одиночный символ, включая пробел и знаки пунктуации

?

Выражение к?т позволяет найти слова коткит и к т.

Один из указанных символов

[ ]

Выражение кр[еа]н позволяет найти слова крен и кран.

Любой символ из указанного диапазона

[-]

Выражение [з-ф]абор позволяет найти слова заборнабор и табор. Диапазон должен быть указан в порядке возрастания.

Начало слова

< 

Выражение <(сол) позволяет найти слова солнце и солист, но не слово «фасоль».

Конец слова

> 

Выражение (ель)> позволяет найти слова ель и шрапнель, но не слово ельник.

Выражение

()

Word запоминает результаты поискового выражения и позволяет использовать их в операции замены.

Любой символ, кроме символов, которые находятся в диапазоне, указанном в скобках

[!э-я]

Выражение ко[!е-р]а позволяет найти слова кода и коса, но не слова кожа и кора.

Предыдущий символ или выражение, повторенные n раз

{n}

Выражение жарен{2}ый позволяет найти слово жаренный, но не слово жареный.

Предыдущий символ или выражение, повторенные не менее n раз

{n,}

Выражение жарен{1,}ый позволяет найти слова жареный и жаренный.

Предыдущий символ или выражение, повторенные от «n» до «m» раз

{n,m}

Выражение 10{1,3} позволяет найти числа 10100 и 1000.

Предыдущий символ или выражение, повторенные не менее одного раза

@

Выражение больше@ позволяет найти слова больше и большее.

Любая строка символов, включая пробел и знаки пунктуации

*

Выражение в*д позволяет найти входвыход и войти задом наперед.

Коды, которые можно указывать в полях «Найти» и «Заменить на»

 

Что требуется найти

Type (Тип)

Знак абзаца (  )

^p (не действует в поле Найти, если установлен флажок Подстановочные знаки) или ^13

Знак табуляции (  )

^t или ^9

Символ ASCII

^ nnn, где nnn — код символа.

Символ ANSI

^0 nnn, где 0 — нуль, а nnn — код символа.

Длинное тире (—)

^+

Короткое тире (–)

^=

Знак крышки

^^

Принудительный разрыв строки (  )

^l или ^11

Разрыв столбца

^n или ^14

Разрыв раздела или страницы

^12 (при замене добавляется разрыв страницы)

Принудительный разрыв страницы

^m (применяется также для поиска и замены разрывов разделов, если установлен флажок Подстановочные знаки

Неразрывный пробел ( )

^s

Неразрывный дефис (  )

^~

Мягкий перенос (  )

^-

Коды, которые можно указывать только в поле «Найти» (если снят флажок «Подстановочные знаки»)

 

Что требуется найти

Type (Тип)

Любой знак

^?

Любая цифра

^#

Любая буква

^$

Рисунок или графический объект (только встроенный)

^g

Знак сноски

^f или ^2

Знак концевой сноски

^e

Поле (если отображаются коды полей)

^d^19 или ^21

Примечание (если примечания являются встроенными)

^a или ^5

Разрыв раздела

^b

Пустое пространство

^w (любой пробел или сочетание обычных и неразрывных пробелов, а также символов табуляции)

Коды, которые можно указывать только в поле «Заменить на»

 

Что требуется найти

Type (Тип)

Содержимое буфера обмена Microsoft Windows

^c

Источник 

Шаблоны для поиска с подстановочными знаками:

несколько пробелов подряд: [ ^s]@

инициал русский: <[А-ЯЁ].

слово кириллицы с заглавной: <[А-ЯЁ][‘а-яё]@>

слово кириллицы с заглавной или заглавными: <[А-ЯЁ][‘А-ЯЁа-яё]@>

инициал английский: <[A-Z].

слово латиницы с заглавной: <[A-Z][‘a-z]@>

слово латиницы с заглавной или заглавными:  <[A-Z][‘A-Za-z]@>

Источник

! ВНИМАНИЕ Установите флажок Подстановочные знаки

  1. Откройте текст в MS Word.
  2. На вкладке Главная в группе Редактирование нажмите кнопку Заменить, чтобы открыть диалоговое окно Найти и заменить.
  3. Установите флажок Подстановочные знаки (возможно, потребуется нажать кнопку Больше, чтобы увидеть его).

Очистка текста

Операция

Поле Найти

Поле Заменить на

Действие

Замена двойных пробелов на одинарные

(два пробела)

(один пробел)

Жать кнопку Заменить все пока не будет (0) замен

Удаление пробелов в конце абзаца

(пробел)^p

^p

Нажать кнопку Заменить все

Удаление пробелов в начале абзаца

^p(пробел)

^p

Нажать кнопку Заменить все

Замена дефисов и длинных тире на короткое тире в числовых диапазонах и удаление отбивки пробелами

Найти и заменить на 45–78

Поле Найти

Поле Заменить на

45 — 78 или 45 — 78

([0-9])[ ^s][-^+][ ^s]([0-9])

1^=2

45- 78 или 45— 78

([0-9])[-^+][ ^s]([0-9])

1^=2

45 -78 или 45 —78

([0-9])[ ^s][-^+]([0-9])

1^=2

45-78 или 45—78

([0-9])[-^+]([0-9])

1^=2

Поставить неразрывные пробелы между фамилией и инициалами Фамилия И. О.

Операция

Поле Найти

Поле Заменить на

Найти

Фамилия И.О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@>)[ ^s]@([А-ЯЁ].)([А-ЯЁ].)

1^s2^s3

Найти

ФамилияИ.О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@)([А-ЯЁ].)([А-ЯЁ].)

1^s2^s3

Найти

ФамилияИ. О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@)([А-ЯЁ].)[ ^s]@([А-ЯЁ].)

1^s2^s3

Найти

Фамилия И. О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@>)[ ^s]@([А-ЯЁ].)[ ^s]@([А-ЯЁ].)

1^s2^s3

Найти

Фамилия, И.О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@>),[ ^s]@([А-ЯЁ].)([А-ЯЁ].)

1^s2^s3

Найти

Фамилия,И.О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@),([А-ЯЁ].)([А-ЯЁ].)

1^s2^s3

Найти

Фамилия,И. О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@),([А-ЯЁ].)[ ^s]@([А-ЯЁ].)

1^s2^s3

Найти

Фамилия, И. О.

Заменить на

Фамилия И. О.

([А-ЯЁ][‘А-ЯЁа-яё]@>),[ ^s]@([А-ЯЁ].)[ ^s]@([А-ЯЁ].)

1^s2^s3

Ждите новые примеры.

Пожелания отправляйте на почту Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.


Просмотров: 14662

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

1

Шаблон поиска

09.02.2013, 16:03. Показов 6214. Ответов 16


Студворк — интернет-сервис помощи студентам

Если есть какие-нибудь идеи, как составить шаблон поиска для следующего текста:
решен слово_1 слово_2 слово_3 слово_4 слово_5 слово_6 слово_7 слово_8 слово_9 слово_10 слово_11 от 01.01.2012 №

где:
решен — это корень;
слово_1 — любое слово;
01.01.2012 — любая дата в виде: ##.##.####
просто символ «№»

Условия:
корень решен находится в начале слова;
после корня решен не должно быть окончания «ми»;
слово_1 — количество слов от нуля до 11.

Примерный шаблон я такой делаю:
<решен [!м][!и]( ){1;13}<от [0-9]{2}.[0-9]{2}.[0-9]{4} №

Примечание

  1. Сделал такую работу с помощью макросов. Но сейчас на свежую голову пришла идея, что можно сделать с помощью «Найти и заменить», что может работать быстрее, да и кода меньше будет — легче будет ориентироваться в коде.
  2. Использовать нужно именно средства программы Word, а не библиотеку (это в программировании VBA) «Microsoft VBScript Regular Expressions 5.5», т.к. нужно обрабатывать найденный текст и нужно получить доступ к тексту в документе, сохраняя форматирование и всё остальное.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

09.02.2013, 16:03

16

5561 / 1367 / 150

Регистрация: 08.02.2009

Сообщений: 4,107

Записей в блоге: 30

09.02.2013, 18:09

2

<[Рр]ешен*[!м][!и]> (<*> ){1;13}<от [0-9]{1;2}.[0-9]{1;2}.[0-9]{2;4} №

По опыту, в реальных текстах пробел нередко бывает удвоен (здесь я это не прописал).

Более жёсткий запрос поиска (без допуска заглавной буквы и без многих вариантов написания даты):

Миниатюры

Шаблон поиска
 



1



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.02.2013, 18:34

 [ТС]

3

Sasha_Smirnov,
[Рр] — достаточно одной буквы р, т.к. в программе Word в «Найти и заменить» есть для этого флажок «Учитывать регистр»;
[0-9]{1;2} нужен поиск именно двух цифр, поэтому так нужно: [0-9]{2}.



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.02.2013, 18:39

 [ТС]

4

Вот такой шаблон неправильно ищет:
<решен*[!м][!и]> (<*> ){1;13}<от [0-9]{2}.[0-9]{2}.[0-9]{4} №

Неправильность видна на выложенном файле.

Слабое место здесь: решен*[!м]



0



5561 / 1367 / 150

Регистрация: 08.02.2009

Сообщений: 4,107

Записей в блоге: 30

09.02.2013, 18:43

5

Цитата
Сообщение от Скрипт
Посмотреть сообщение

нужен поиск именно двух цифр

То есть дуракоустойчивость устремляем к нулю?

Насчёт учёта регистра — в режиме Подстановочные знаки он попросту отключён.



1



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.02.2013, 18:53

 [ТС]

6

Цитата
Сообщение от Sasha_Smirnov
Посмотреть сообщение

То есть дуракоустойчивость устремляем к нулю?

да, нужно найти то, что ищем. Без всяких заморочек.

Цитата
Сообщение от Sasha_Smirnov
Посмотреть сообщение

Насчёт учёта регистра — в режиме Подстановочные знаки он попросту отключён.

да, точно. Я не заметил. Для данного примера нужно искать только маленькую букву р.

Ещё вспомнил, что нужно. Шаблон поиска не должен искать запятую.

Сейчас подумал (на основе сообщений Sasha_Smirnov), за слово может быть принять вот такое <*>, а не пробел. Просто в VBA-Word словом и запятая является и ещё что-то, поэтому я решил сделать акцент на пробел. А в данном случае может быть такое выражение и сработает <*>.



0



5561 / 1367 / 150

Регистрация: 08.02.2009

Сообщений: 4,107

Записей в блоге: 30

09.02.2013, 18:57

7

Так оно и срабатывает! Дугое дело, что * чревата захватом лишнего, особенно когда вручную, без ВБА.



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.02.2013, 19:03

 [ТС]

8

Sasha_Smirnov, в выложенном файле лишнее захватывается. Текст в первой строке файла не нужно захватывать.



0



5561 / 1367 / 150

Регистрация: 08.02.2009

Сообщений: 4,107

Записей в блоге: 30

09.02.2013, 20:03

9

Ну я о том же. А вы ищите снизу вверх, снизу вверх…



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.02.2013, 20:07

 [ТС]

10

Лучший ответ Сообщение было отмечено как решение

Решение

Sasha_Smirnov, вот ещё выкладываю файл. В нём теперь и снизу вверх будет искаться так, как не задумано.

Я так понял, что нужно как-то научиться работать с окончаниями в «Найти и заменить».



1



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

09.02.2013, 20:45

 [ТС]

11

Сейчас ещё обнаружил, что вот это не работает (не в моём случае, а вообще):
(<*> ){2}

Получается, что это:
(<*> ){1;13}
тоже не работает так, как надо — только число 1 участвует.



1



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

10.02.2013, 10:46

12

<решен[!и-м]*> <от [0-9]{1;2}.[0-9]{1;2}.[0-9]{2;4} №
вот такая связка тоже воспроизводит Ваш поиск. Теперь видимо нужно поставить «исключить знак абзаца» между элементами поиска, с другой стороны в тексте вероятность знака абзаца между элементами — 50/50. Пробовала поставить [!^13], но не сработало



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

10.02.2013, 15:10

 [ТС]

13

Пришла новая идея: сначала вести поиск вот этой схемы:
<от [0-9]{2}.[0-9]{2}.[0-9]{4} №

А затем уже от неё двигаться влево (в начало документа) в поисках нужного текста (в данном случае, в поисках слова «решен»). Пока что вижу решение только с помощью макросов.



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

10.02.2013, 16:59

14

Еще идея такая: в любом случае перед словом «решен» должен быть знак препинания (запятая, точка или двоеточие). Может попробовать поискать «знак препинания» количество знаков «решен» и т.д.



1



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

11.02.2013, 10:04

 [ТС]

15

Цитата
Сообщение от Fairuza
Посмотреть сообщение

в любом случае перед словом «решен» должен быть знак препинания (запятая, точка или двоеточие)

нет, слово «решен» никак не связано со знаком препинания.



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

11.02.2013, 10:37

16

Я не говорю, что «.решен…», а что в пределах одного предложения, может через запятую.
Но в любом случае, если ставить решен*, будет происходить поиск первого вхождения этого слова до даты. Может оставить «решен» и «дата», и если в предложении нет связки слово+дата, идти дальше.



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

11.02.2013, 10:42

 [ТС]

17

Fairuza, неправильно вас понял (сообщение #14). Оптимальный вариант в моём случае — это использование в качестве основы для поиска фразы: от 01.01.2012 №

Ведь эта фраза и определяет — делать что-то со словом «решен» или нет.
Поэтому поиск нужно вести с конца в начало, тогда не будет принятно во внимание ненужное слово «решен».



1



Продолжаем работать с документом с урока 46. Если вы потеряли документ, то вот вам ссылка ‒ скачивайте! Документ получился неплохой с небольшим количеством стилей, с удачно вставленным оглавлением:

Поиск в документе

Практически в любом документе есть большое количество списков. В сущности список – это простейшее средство структурирования текста. Следовательно нам понадобиться стиль текста для маркированного списка. Разработчики Word побеспокоились заранее и создали несколько встроенных стилей для маркированных и нумерованных списков. Но не советую ими пользоваться. Нам важно понять: почему? Это первый вопрос.

На уроке 9 «Создание собственного стиля» мы как раз занимались созданием стиля «Список_тире». Так что вопросов с созданием нового стиля у нас быть не должно, но повторить не мешает. Второй вопрос.

После создания пользовательского стиля со списком нам предстоит применить стиль к нужным участкам текста. А если мы работаем с большим документом? Для меня документ в 200 страниц считается небольшим документом. Конечно, можно тщательно пройти по всему документу, отыскивая нужные места. Если у вас документ в 20 страниц, то вы так и сделайте. А если 600 страниц? Вот и третий вопрос.

Я обозначила вопросы. Будем решать?

По окончании урока вы сможете:

  1. Рассказать о нежелательности использования встроенных стилей
    маркированных и нумерованных списков
  2. Создать пользовательский стиль текста «Список_тире»
  3. Найти по всему документу места расположения списков и
    применить к ним стиль «Список_тире».

1. Нежелательность
использования встроенных стилей маркированных и нумерованных списков

На уроке 13 «Встроенные стили. Первое знакомство» я рассказала, что такое встроенные стили. Я даже сделала скриншот с перечнем все встроенных стилей:

Поиск в документе

Как можете видеть
стилей текста со списком там достаточно.

Я воспользовалась любезностью разработчиков Word и применила встроенные стили к нумерованному и вложенному маркированному списку:

Поиск в документе

Всё получилось хорошо и нумерация не поплыла. Но нужные мне стили в рабочем окне «Стили» размещаются в разных местах согласно алфавиту. Это страшно неудобно! Переименовать эти стили так, чтобы они располагались рядом, невозможно (см. урок 13 «Встроенные стили. Первое знакомство»).

Название Встроенного стиля нельзя заменить.
Ваши изменения в названии Встроенного стиля только добавятся к названию Встроенного стиля.

Следовательно, надо делать пользовательские стили.

Понять и запомнить! Называть пользовательские стили следует так, чтобы они сортировались в соответствии с алфавитом

Пример из моей практики:

Поиск в документе

Как видите в моих
документах все стили списков начинаются со слова «Список». Поэтому они стоят
рядышком в рабочем окне «Стили».

Тем более, что в моем случае это многоуровневые списки (урок 23 «Многоуровневый список»).

Я всегда называю пользовательские списки с учетом расположения имен списков в рабочем окне «Стили». Это позволяет сэкономить кучу времени при форматировании документа. Очень легко ориентироваться по перечню стилей, если они расставлены в определенном порядке. Посмотрите ещё один пример:

Поиск в документе

В документе есть абзацы с нумерацией приложения и абзацы с названием этого приложения. Эти абзацы по тексту документа всегда рядом. Поэтому я дала названия стилям соответственно «Приложение» и «Приложение_Название», а не «Название приложения»!

Понять и запомнить! Теперь в рабочем
окне «Стили» имена этих стилей рядышком и этим очень удобно пользоваться

2. Создание пользовательского
стиля «Список_тире»

Повторяем урок 9 раздел 4, но уже с документом, который вы скачали.

Шаг 1. Находим в документе место списка (страница 8):

Поиск в документе

Как видите
маркированный список назначен вручную, но стиль самих абзацев «Обычный».

Шаг 2. Задаем выравнивание абзацев по ширине (лента Главная → группа команд Абзац → команда Выравнивание по ширине):

Поиск в документе

Шаг 3. Открываем окно «Создание стиля» (лента Главная → группа команд Стили → кнопка выпадающего меню → команда Создать стиль…):

Поиск в документе

Шаг 4. Вводим в поле «Имя:» название
«Список_тире»:

Поиск в документе

В рабочем окне «Стили»
появится новый стиль «Список_тире:

Поиск в документе

А дальше задача: найти все списки по документу. Что характеризует список, как субъект текста? Наличие знака препинания «Двоеточие»! Можно ли найти этот знак? Да, Word’е есть такая команда (лента Главная → группа команд Редактирование → команда Найти):

Поиск в документе

На этом уроке мы
только знакомимся с этой командой. Команда «Найти» дают нам возможность
увеличить производительность труда в разы! Приступим?

3. Поиск по всему документу
места расположения списков

Для начала выясним
вопрос: встречается ли знак препинания «двоеточие», которое не имеет отношение
к списку? Очень и очень часто. Например:

Поиск в документе

Следовательно, стоит
задача: создание уникальной записи для поиска списков. Посмотрите на список,
который мы только что делали:

Поиск в документе

Предложение, открывающее список → двоеточие → непечатаемый символ конца абзаца → пункт списка. То есть искать надо знак препинания «двоеточие»+ символ конца абзаца. На уроке 1 «Непечатаемые символы» я сказала: «Непечатаемые служебные символы помогают правильно работать с документом».

Шаг 1. Открыть диалоговое окно «Найти и
заменить» (лента Главная → группа команд Редактирование →
команда Найти → команда Расширенный поиск):

Поиск в документе

Шаг 2. Вводим знак препинания «двоеточие» с
клавиатуры и увеличиваем диалоговое окно (нажать клавишу «Больше» в левом
нижнем углу диалогового окна):

Поиск в документе

Шаг 3. Вводим непечатаемый символ конца
абзаца (команда Специальный → команда Знак абзаца):

Поиск в документе

Команда « Специальный» открывает список специальных (непечатаемых) символов. Диалоговому окну «Найти и заменить» и в частности этому списку будет посвящен не один урок.

Шаг 4. Теперь только остается нажимать
клавишу «Найти далее»:

Поиск в документе

Я свернула диалоговое
окно «Найти и заменить» исключительно для того, чтобы размер скриншота был
поменьше.

У этого диалогового
окна есть одна исключительная особенность: диалоговое окно нет нужды закрывать.
Вы можете спокойно «уйти» с этого окна на текст документа и вернуться обратно в
диалоговое окно «Найти и заменить». Честно, я не знаю другого диалогового окна
с таким свойством. Поэтому, не закрывая окна…

Шаг 5. Выделяем список и присваиваем ему
стиль «Список_тире»:

Поиск в документе

Шаг 6. Повторяем Шаг 4 и Шаг 5. У меня эта процедура для документа в 600 страниц занимает минут 30.

И под занавес. Сейчас я уже не делаю так. Не ищу двоеточия. Я перехожу в окне поиска в режим «Постановочные знаки», в поле «Найти» записываю определенное выражение. Это позволяет мне выделить все части текста с подозрением на список по всему документу и одномоментно присвоить им стиль «Список».

Теперь вы можете:

  1. Рассказать о нежелательности использования встроенных стилей
    маркированных и нумерованных списков
  2. Создать пользовательский стиль текста «Список_тире»
  3. Найти по всему документу места расположения списков и
    применить к ним стиль «Список_тире».

Понравилась статья? Поделить с друзьями:
  • Word шаблоны для лабораторных работ
  • Word шаблоны для вкр
  • Word шаблона при запуске
  • Word шаблона диалоговое окно
  • Word шаблон табель учета рабочего времени