|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Microsoft Word 97 предоставляет необыкновенно
мощный инструмент для поиска и замены. Умение
грамотно им пользоваться существенно упрощает
редактирование и правку документов. В этой
статье я расскажу как использовать специальные
знаки в операциях поиска и замены и приведу ряд
примеров. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Пример 1 Рассмотрим простой случай поиска и замены. Требуется заменить в документе фамилию Иванов
на Петров.
Поскольку фамилия Иванова в документе может быть в разных падежах и числах, то придется выполнить последовательно много замен. А можно ли произвести одну такую замену, чтобы в документе сразу заменить:
Да можно. Для этого надо использовать специальные знаки. Пример 2 В документе очень много десятичных дробей. Часть дробей набрана через точку, часть — через запятую. Можно ли произвести такую замену, чтобы сделать написание всех дробей единообразным. Да можно. Для этого надо использовать специальные знаки. Пример 3 Дано 30 файлов содержащих текст словаря компьютерных терминов следующего вида:
В тексте нет никаких выделений. Общее число словарных статей — 30000. Требуется:
Т.е. сделать 30000 выделений полужирным начертанием и 30000 замен дефиса на тире. Можно ли это сделать за 5 минут? Да можно. Для этого надо использовать
специальные знаки. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В Microsoft Word существуют два типа
специальных знаков — специальные символы и
подстановочные знаки. Те и другие удобно вводить
в строки поиска и замены используя кнопку Special
(Специальный) в диалоге поиска и замены. Специальными символами называют символы которых нет на клавиатуре и/или которые невозможно непосредственно вписать в строку поиска или замены. Например: принудительный обрыв строки, мягкий перенос, неразрываемый пробел и т. п. Есть специальные символы, которые замещают собой любую букву или цифру, любой символ. Если в диалоге поиска и замены задействована опция Use wildcards (Подстановочные знаки), то становится возможным формировать сложные условия поиска. Для этого используются подстановочные знаки. С их помощью можно задавать диапазоны символов и выражения отвечающие ряду условий. Некоторые символы и знаки можно использовать только в строке поиска, некоторые — только в строке замены. Возможность использования других зависит от того задействована или нет опция Use wildcards (Подстановочные знаки). Ниже, я привожу полный список символов и знаков. А еще ниже — примеры
их использования. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Специальные символы, которые можно использовать только в том случае, если опция Use wildcards (Подстановочные знаки) не задействована.
Специальные символы, использование которых не зависит от опции Use wildcards (Подстановочные знаки).
Подстановочные знаки, которые можно использовать только в том случае, если опция Use wildcards (Подстановочные знаки) задействована.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Специальные символы, использование которых не зависит от опции Use wildcards (Подстановочные знаки)
Подстановочные знаки, которые можно использовать только в том случае, если опция Use wildcards (Подстановочные знаки) задействована.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Точка с запятой в операторах {n;} и {n;m} —
это не просто точка с запятой, а, так называемый,
List separator (Разделитель элементов списка). В США это
запятая, в России — точка с запятой. Чтобы узнать
какой символ играет роль разделителя элементов
списка в вашей конфигурации, загляните в Control
Panel\Regional Settings\Number\List separator (Панель управления\Язык
и стандарты\Числа\Разделитель элементов списка). Для
поиска в документе знаков, которые в строке
поиска используются как специальные, необходимо
набирать перед ними обратный слэш (\). Например,
если задействована опция Use wildcards (Подстановочные
знаки), то, чтобы искать восклицательный знак,
надо в строке поиска набрать обратный слэш и за
ним восклицательный знак (\!). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Опция Use wildcards (Подстановочные знаки)
должна быть задействована в диалоге поиска и
замены. Это условие должно соблюдаться для всех
приведенных ниже примеров.Примеры поиска
|
Строка поиска | Что будет находить |
[!^0013]^0013[!^0013] | Одиночный конец абзаца в окружении двух неконцов. (Подробный разбор см. ниже). |
^0013{2;} | Два и более конца абзацев |
^0032{2;} | Два и более пробела |
[.,:;\!\?] | Знак препинания ( . , : ; ! ? ) |
[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){2;} | \1 | Удаление пустых строк |
^0032{2;} | ^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
Замена в документе фамилии Иванов на
фамилию Петров сразу во всех падежах:
Строка поиска | Строка замены | Результат поиска и замены |
Ивано([а-я]@>) | Петро\1 | Замена фамилии Иванов на фамилию Петров сразу во всех падежах |
Конечно, такая замена возможна только с фамилиями, у которых одинаковые падежные окончания.
Пример 2
В документе очень много десятичных дробей. Часть дробей набрана через точку, часть — через запятую.
Требуется произвести такую замену, чтобы сделать написание всех дробей единообразным.
Вот два варианта этой замены:
Строка поиска | Строка замены | Результат поиска и замены |
(<[0-9]@).([0-9]@>) | \1,\2 | Десятичная точка будет заменена на запятую |
(<[0-9]@),([0-9]@>) | \1.\2 | Десятичная запятая будет заменена на точку |
Пример 3
Дано 30 файлов содержащих текст словаря компьютерных терминов следующего вида:
Alpha(nu)meric display - буквенно-цифровой (символьный)
дисплей
Alpha(nu)meric keyboard - буквенно(алфавитно)-цифровая клавиатура
Alternate key - альтернативный ключ
Alternate Mark Inversion (AMI) - чередующаяся инверсия единиц
|
В тексте нет никаких выделений. Общее число словарных статей — 30000.
Требуется:
Т.е. сделать 30000 выделений полужирным начертанием и 30000 замен дефиса на тире.
В результате должно получиться следующее:
Alpha(nu)meric display — буквенно-цифровой
(символьный) дисплей
Alpha(nu)meric keyboard — буквенно (алфавитно)-цифровая клавиатура
Alternate key — альтернативный ключ
Alternate Mark Inversion (AMI) — чередующаяся инверсия единиц
|
Вот как это решается за 5 минут:
Строка поиска | Строка замены |
(^0013[A-Za-z^0032\(\)]@)^0032- | \1^0032^0151 |
Для строки замены необходимо установить Format: Bold (Формат: полужирный). Для этого воспользуйтесь кнопкой Format (Формат).
Вот и все. Осталось нажать на кнопку Replace All
(Заменить все) и насладиться результатом.
Сергей Михайлович Хозяинов
E-mail: smh@mail.ru
Home Page: http://stop.at/smh