Поиск и замена текста
Поиск и замена — это одна из важнейших функций любой программы, которая обрабатывает большие объемы текстовой информации. Все профессиональные текстовые редакторы, настольные издательские системы, мощные графические редакторы имеют средства для поиска и замены строковых образцов.
Программа поиска и замены текста запускается по команде Edit|Find and Replace|Text
(<Ctrl>+<Shift>+<F>). Областью поиска является отмеченный текстовый блок или отмеченная текстовая цепочка. Если таковые отсутствуют, то поиск выполняется во всех текстовых блоках и цепочках публикации.
Разделение текстового массива на слова, строчки и страницы — это форма, удобная для человеческого восприятия. Для программы любой текст представляет собой просто последовательность символов: букв, цифр, пробелов, концов строк и параграфов и др. Программа поиска «перемещает» заданный поисковый образец по текстовой цепочке до полного совпадения образца и текстового фрагмента. Если такое совпадение имеет место, то поиск считается успешным, а соответствующий фрагмент тестового блока отмечается.
На рис. 6-8 показано диалоговое окно Find Text (Найти текст), в котором задаются параметры поисковой сессии.
6-8. Диалоговое окно для поиска и замены текста
В поле Find (Найти) вводится строчка, которая служит образцом поиска. Для вставки в образец специальных символов или шаблонов служит поле
Special (Специальные символы). Символы, которые отсутствуют в этом списке, можно вставить в поисковый образец при помощи буфера обмена.
Переключатели Whole word (Слово целиком) и Match case (Соответствие регистра) ужесточают правила поиска. Если выставить флажок
Whole word, то программа будет искать не подцепочку, а целое слово, которое совпадает с поисковым образцом. Так, если ввести в качестве образца слово «поиск», то программа пропустит все словообразования, построенные на его основе (поисковый, поисковик и т. п.).
Если выбран переключатель Match case, то программа будет считать различными символы, набранные в верхнем и нижнем регистрах.
Переключатель Show selection (Показать выделение) обеспечивает прокрутку экрана так, что найденный фрагмент всегда остается в поле зрения пользователя.
Щелчок по кнопке Find Next (Найти следующий) запускает процедуру поиска и инициирует его продолжение после нахождения совпадающего фрагмента.
В нижней левой части диалогового окна программа отображает найденное вхождение образца и его контекст.
В поле Change to (Заменить на) можно задать подстановку, т. е. строчку, которая заменяет найденный фрагмент текста. Для вставки в подстановку специальных символов используется поле
Special (Специальный символ).
Кнопки Change (Заменить) и Change all (Заменить все) управляют заменой текста. Первая служит для подтверждения замены каждого вхождения поискового образца на строчку, заданную в поле Change to. По щелчку на второй кнопке программа автоматически выполнит все замены в заданном поисковом пространстве.
В таблице представлен полный перечень специальных символов и шаблонов вместе с их кодовыми обозначениями, которые можно использовать для сложного поиска. Пусть, например, требуется найти все строчки текстового массива, которые начинаются с цифры. Для этого надо два раза выполнить поиск с разными критериями. По образцу
^р^# будут найдены все первые строчки параграфов, удовлетворяющие заданному условию, а поиск по образцу
^п^# относится ко всем остальным строчкам.
Название
|
Обозначение
|
Табулятор
|
^t
|
Конец параграфа
|
^p
|
Конец колонки
|
^d
|
Конец строки
|
^n
|
Неразрывный пробел (non-breaking space)
|
^S
|
Длинный пробел, круглая шпация (Em space)
|
^М
|
Полукруглая шпация (En space)
|
^N
|
Короткий пробел, тонкая шпация (Thin space)
|
^T
|
Символ мягкого переноса, дискреционный перенос
|
 
|
(Discretionary hyphen)
|
  ^- |
Знак вставки, галочка (Caret)
|
^^
|
Любой одиночный символ
|
^@
|
Любая одиночная буква
|
^*
|
Любая одиночная цифра
|
^#
|
Белый пробел (любой из трех типов пробелов, или символ
|
 
|
табуляции, или любая последовательность этих символов)
|
^w
|
Совет
Многие программы имеют такие средства поиска, которые позволяют менять только признаки форматирования найденного фрагмента, оставляя символы без изменений. Рассмотрим, как эта функция выполняется в программе FreeHand. Необходимо проделать следующее:
- Отметить текст, который принимается в качестве образца;
- Перенести в буфер обмена атрибуты форматирования этого текста (<Ctrl>+<Alt>+<Shift>+<C>);
- Вызвать диалоговое окно Find Text (<Ctrl>+<Shin>+<F>), задать поисковый образец и установить флажок переключателя
Show selection;
- Щелкнуть по кнопке Find Next и найти первое вхождение поискового образца. Найденный текстовый фрагмент будет отмечен;
- По команде Edit|Paste Attributes (<Ctrl>+<Shift>+<Alt>+<V>) применить скопированные параметры форматирования к отмеченному тексту;
- Повторять процедуру поиска и копирования атрибутов до конца поискового пространства.