Специальные символы и подстановочные знаки в операциях поиска и замены MS Word 97/2000/XP

Специальные символы и подстановочные знаки в операциях поиска и замены MS Word 97/2000/XP

Оригинал статьи раньше находился по адресу http://calends.webzone.ru. Предположив, что этот ресурс постигнет обычная судьба сайтов на бесплатных хостингах-могильниках, я сделал копию (предварительно безуспешно попытавшись связаться с автором) и, как видите, не прогадал.

Microsoft Word предоставляет необыкновенно мощный инструмент для поиска и замены. Умение грамотно им пользоваться существенно упрощает редактирование и правку документов. В этой статье я расскажу, как использовать специальные знаки в операциях поиска и замены, и приведу ряд примеров.

Зачем это надо?

Пример 1

Рассмотрим простой случай поиска и замены.

Требуется заменить в документе фамилию Иванов на Петров .

Строка поиска Строка замены Результат поиска и замены Иванов Петров Иванов будет заменен на Петров

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

Иванов на Петров , Иванову на Петрову , Ивановым на Петровым , Иванова на Петрова , Ивановы на Петровы ,

Да, можно. Для этого надо использовать специальные знаки.

Пример 2

В документе очень много десятичных дробей. Часть дробей набрана через точку, часть — через запятую.

Можно ли произвести такую замену, чтобы сделать написание всех дробей единообразным?

Да, можно. Для этого надо использовать специальные знаки.

Пример 3

Дан большой документ содержащий текст словаря компьютерных терминов следующего вида:

Alpha(nu)meric display - буквенно-цифровой (символьный) дисплей

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

Alpha(nu)meric keyboard - буквенно(алфавитно)-цифровая клавиатура

Клавиатура для ввода кодовых представлений цифр и букв, имеющая маркировку символьного набора.

Alternate key - альтернативный ключ

Ключ поиска в базе данных, не указанный в качестве первичного ключа.

Alternate Mark Inversion (AMI) - чередующаяся инверсия единиц

Способ биполярного кодирования, в котором следующие подряд единицы (mark) кодируются сигналами с противоположными знаками.

В тексте нет никаких выделений. Общее число словарных статей -- 30 000.

1. Найти все переводимые английские термины и выделить их полужирным начертанием. При этом все другие английские слова оставить в неприкосновенности.

2. Дефис между английским термином и его переводом заменить на тире. При этом все другие дефисы оставить в неприкосновенности.

Т. е. найти все 30 000 фрагментов текста, отвечающих вышеприведенным условиям, и сделать 30 000 выделений полужирным начертанием и 30 000 замен дефиса на тире.

Можно ли это сделать за 1 минуту?

Да, можно. Для этого надо использовать специальные знаки.

Какие такие знаки?

В Microsoft Word существуют два типа специальных знаков — специальные символы и подстановочные знаки. Те и другие удобно вводить в строки поиска и замены используя кнопку Special ( Специальный ) в диалоге поиска и замены.

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

Если в диалоге поиска и замены задействована опция Use wildcards ( Подстановочные знаки ), то становится возможным формировать сложные условия поиска. Для этого используются подстановочные знаки. С их помощью можно задавать диапазоны символов и выражения, отвечающие ряду условий.

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

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

А еще ниже — примеры их использования.

Строка поиска

Специальные символы, которые можно использовать только в том случае, если опция Use wildcards ( Подстановочные знаки ) не задействована.

Спец. символы Что обозначают ^p Paragraph mark (¶) Символ конца абзаца (¶) ^? Any character Любой символ ^# Any digit Любая цифра ^$ Any letter Любая буква ^e Endnote mark Концевая сноска ^d Field Поле ^f Footnote mark Сноска ^b Section break (===End of section===) Обрыв секции (===End of section===) ^w Whitespace Любое число и любая комбинация обыкновенных и неразрываемых пробелов, табуляций и концов абзаца

Специальные символы, использование которых не зависит от опции Use wildcards ( Подстановочные знаки ).

Подстановочные знаки, которые можно использовать только в том случае, если опция Use wildcards ( Подстановочные знаки ) задействована.

Спец. знаки Что обозначают Пример строки поиска Что будет находить ? Один любой символ б ? к бак , бок , бук , б5к , б¶к и т. п. * Любое число любых символов б * к бык , бардак , белый.¶ Полковник и т. п. [] Один из указанных символов б [ аоу ] к бак , бок , бук [-] Один символ из диапазона. Диапазон должен быть указан в порядке возрастания кодов символов. [ а - яё ] Любая строчная русская буква [ А - ЯЁ ] Любая прописная русская буква [0-9] Любая цифра [!] Один любой символ не указанный после восклицательного знака б [! ы ] к бак , бок и т. п., но не бык [!x-z] Один любой символ, не входящий в диапазон указанный после восклицательного знака [! а - яё ]ок Бок , Док и т. п., но не бок , док [!0-9] Любой символ кроме цифр Строго n штук предыдущего символа или выражения. Выражением является все то, что заключено в круглые скобки. Выражение может состоять как из конкретных символов, так и содержать спец. знаки. 10 1000 , но не 100 , 10000 10(20) 102020 , но не 1020 , 10202020 n и более штук предыдущего символа или выражения 10 1000 , 10000 , 100000 и т. д., но не 100 От n до m штук предыдущего символа или выражения 10 1000 , 10000 , но не 100 , 100000 @ Ноль или более штук предыдущего символа или выражения 10@ 10 , 100 , 1000 , 10000 и т. д. < Начало слова < бок бок сер, но не коло бок > Конец слова бок > коло бок , но не бок сер

Строка замены

Специальные символы, использование которых не зависит от опции Use wildcards ( Подстановочные знаки ).

Подстановочные знаки, которые можно использовать только в том случае, если опция Use wildcards ( Подстановочные знаки ) задействована.

Знаки Что обозначают \n Expression n Выражение номер n из строки поиска

Замечания по синтаксису

Точка с запятой в операторах и — это не просто точка с запятой, а так называемый List separator ( Разделитель элементов списка ). В США это запятая, в России — точка с запятой. Чтобы узнать, какой символ играет роль разделителя элементов списка в вашей конфигурации, загляните в Control Panel | Regional Settings | Numbers | List separator ( Панель управления | Язык и стандарты | Числа | Разделитель элементов списка ).

Для поиска в документе знаков, которые в строке поиска используются как специальные, необходимо набирать перед ними обратный слэш ( \ ). Например, если задействована опция Use wildcards ( Подстановочные знаки ), то, чтобы искать восклицательный знак, надо в строке поиска набрать обратный слэш и за ним восклицательный знак ( \! ).

Примеры

Опция Use wildcards ( Подстановочные знаки ) должна быть задействована в диалоге поиска и замены. Это условие должно соблюдаться для всех приведенных ниже примеров.

Примеры поиска Строка поиска Что будет находить [!^0013]^0013[!^0013] Одиночный конец абзаца в окружении двух неконцов. (Подробный разбор см. ниже). ^0013 Два и более конца абзацев ^0032 Два и более пробела [. ;\!\?] Знак препинания ( . , : ; ! ? ) [0-9]^0032[0-9] Две цифры, разделенные пробелом [0-9]^0032[A-Za-zА-яЁё] Цифра и буква (английская или русская) разделенные пробелом. (Подробный разбор см. ниже). -[0-9] Дефис и цифра <[0-9]@-[0-9]@> Два целых числа, разделенные дефисом \([0-9]\) Цифра в круглых скобках <[0-9]@> Целое число (точнее — непрерывная последовательность цифр) <[0-9]@,[0-9]@> Десятичная дробь, набранная через запятую <[A-Za-z]@> Английское слово <[А-яЁё]@> Русское слово <[А-ЯЁ][а-яё]@> Русское слово, набранное строчными буквами, но с прописной. (Подробный разбор см. ниже). Подробный разбор нескольких строк поиска

1 символ строки поиска 2 символ 3 символ Любой символ, но не конец абзаца Конец абзаца Любой символ, но не конец абзаца [!^0013] ^0013 [!^0013] В квадратных скобках указан символ с кодом 0013 (конец абзаца). Знак «!» указывает на то, что в этой позиции может находится любой символ кроме конца абзаца. Конец абзаца (символ с кодом 0013). В квадратных скобках указан символ с кодом 0013 (конец абзаца). Знак «!» указывает на то, что в этой позиции может находится любой символ кроме конца абзаца.

1 символ строки поиска 2 символ 3 символ Любая цифра Пробел Любая буква (английская или русская) [0-9] ^0032 [A-Za-zА-яЁё] В квадратных скобках указан диапазон знаков от 0 до 9, т. е. цифры. Пробел (символ с кодом 0032). Допустимый символ определен тремя диапазонами и двумя конкретными символами. A-Z — английские прописные буквы; а-z — английские строчные буквы; А-я — русские прописные и строчные буквы; Ёё — прописная и строчная ё (чтобы охватить весь русский алфавит).

1 позиция строки поиска 2 позиция Любая русская прописная буква Любые русские строчные буквы <[А-ЯЁ] [а-яё]@> В квадратных скобках указан диапазон знаков от А до Я и Ё (т. е. любая русская прописная буква). Знак «<»указывает на то, что прописная буква должна быть в начале слова. Диапазон в квадратных скобках определяет все русские строчные буквы. Знак «@» говорит о том, что число русских строчных букв может быть равным или больше нуля. Знак «>» указывает на конец слова.

Об операциях с выражениями

Для работы с выражениями задействуйте опцию Use wildcards ( Подстановочные знаки ).

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

В строке замены выражения представляются в виде: \n , где n — номер выражения в строке поиска.

Простой пример, поясняющий работу с выражениями

Будем редактировать предложение: Сережа ест грушу.

Строка поиска Строка замены Результат поиска и замены ( Сережа )( ест )( грушу ). \3 \2 \1 грушу ест Сережа . \1 \3 с хрустом \2 Сережа грушу с хрустом ест . \1 и Катя едят \3 Сережа и Катя едят грушу . \1 \2 \3 и Катя \2 \3 Сережа ест грушу и Катя ест грушу .

Примеры поиска и замены Строка поиска Строка замены Результат поиска и замены ([!^0013]^0013)([!^0013]) \1^0013\2 Вставка пустой строки между теми абзацами, между которыми пустой строки не было. (^0013) \1 Удаление пустых строк ^0032 ^0009 Замена двух или более пробелов на табуляцию ^0032([. ;\!\?]) \1 Удаление пробела перед знаком препинания ( . , : ; ! ? ) ([0-9])^0032([0-9]) \1^s\2 Замена пробела между цифрами на неразбиваемый пробел ([0-9])^0032([A-Za-zА-яЁё]) \1^s\2 Замена пробела между цифрой и буквой (английской или русской) на неразбиваемый пробел -([0-9]) ^0150\1 Замена дефиса перед цифрой на минус \(([0-9])\) [\1] Замена круглых скобок вокруг цифры на квадратные И еще три примера

Замена в документе фамилии Иванов на фамилию Петров сразу во всех падежах:

Строка поиска Строка замены Результат поиска и замены Ивано ([а-я]@>) Петро \1 Замена фамилии Иванов на фамилию Петров сразу во всех падежах

Конечно, такая замена возможна только с фамилиями, у которых одинаковые падежные окончания.

В документе очень много десятичных дробей. Часть дробей набрана через точку, часть — через запятую.

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

Вот два варианта этой замены:

Строка поиска Строка замены Результат поиска и замены (<[0-9]@).([0-9]@>) \1,\2 Десятичная точка будет заменена на запятую (<[0-9]@),([0-9]@>) \1.\2 Десятичная запятая будет заменена на точку

Дан большой документ содержащий текст словаря компьютерных терминов следующего вида:

Alpha(nu)meric display - буквенно-цифровой (символьный) дисплей

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

Alpha(nu)meric keyboard - буквенно(алфавитно)-цифровая клавиатура

Клавиатура для ввода кодовых представлений цифр и букв, имеющая маркировку символьного набора.

Alternate key - альтернативный ключ

Ключ поиска в базе данных, не указанный в качестве первичного ключа.

Alternate Mark Inversion (AMI) - чередующаяся инверсия единиц

Способ биполярного кодирования, в котором следующие подряд единицы (mark) кодируются сигналами с противоположными знаками.

В тексте нет никаких выделений. Общее число словарных статей -- 30 000.

1. Найти все переводимые английские термины и выделить их полужирным начертанием. При этом все другие английские слова оставить в неприкосновенности.

2. Дефис между английским термином и его переводом заменить на тире. При этом все другие дефисы оставить в неприкосновенности.

Т. е. найти все 30 000 фрагментов текста, отвечающих вышеприведенным условиям, и сделать 30 000 выделений полужирным начертанием и 30 000 замен дефиса на тире.

В результате должно получиться следующее:

Alpha(nu)meric display — буквенно-цифровой (символьный) дисплей

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

Alpha(nu)meric keyboard — буквенно(алфавитно)-цифровая клавиатура

Клавиатура для ввода кодовых представлений цифр и букв, имеющая маркировку символьного набора.

Alternate key — альтернативный ключ

Ключ поиска в базе данных, не указанный в качестве первичного ключа.

Alternate Mark Inversion (AMI) — чередующаяся инверсия единиц

Способ биполярного кодирования, в котором следующие подряд единицы (mark) кодируются сигналами с противоположными знаками.

Вот как это решается за пару минут:

Строка поиска Строка замены (^0013[A-Za-z^0032\(\)]@)^0032- \1^0032^0151

Для строки замены необходимо установить Format: Bold ( Формат: полужирный ). Для этого воспользуйтесь кнопкой Format ( Формат ).

Вот и все. Осталось нажать на кнопку Replace All ( Заменить все ) и насладиться результатом.

📎📎📎📎📎📎📎📎📎📎