Читаем Macromedia Flash Professional 8. Графика и анимация полностью

На заметку

В нижней части панели Find and Replace присутствует также флажок Live edit. В документации написано, что он, будучи включен, позволяет пользователю править найденные подстроки (а также цвета, шрифты и образцы). Однако, как показывает опыт, "живая правка" возможна и при отключенном флажке Live edit, т. е. состояние флажка ни на что не влияет.

<p>Регулярные выражения и их использование</p>

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

Предположим, что перед нами стоит задача отыскать в текстовых блоках адрес электронной почты, оканчивающийся на".сот". Как это сделать? Может быть, поискать значок "собака" (@)? Но ведь он может встретиться и в обычном тексте, не являющемся почтовым адресом. Искать подстроку".сот"? Но тогда Flash вывалит в таблицу результатов поиска панели Find and Replace все найденные им интернет-адреса. Что же делать?..

Нам поможет только регулярное выражение. А именно, такое:

\b.+@.+\.com

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

Теперь, когда нам все стало ясно, можно опробовать приведенное выше регулярное выражение. Выберем в раскрывающемся списке For панели Find and Replace пункт Text, введем наше регулярное выражение в область редактирования Text и не забудем включить флажок Regular expressions. Ура, работает!

Обобщим сведения, почерпнутые из приведенного примера.

В регулярных выражениях для обозначения различных фрагментов текста используются специальные символы — литералы. Если же нужно найти какой-либо символ, совпадающий с литералом, мы должны будем предварить его символом обратной косой черты (\). Например, чтобы найти точку, мы используем последовательность символов \..

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

(multi|hyper)media

совпадает со словами "multimedia" и "hypermedia", но не совпадает со словом "media". Литерал "вертикальная черта" (|) задает поиск либо первой, либо второй подстроки (в нашем случае — либо "multi", либо "hyper"), а скобки здесь использованы для того, чтобы отделить друг от друга две части выражения. Если бы мы их не поставили, получилось бы выражение multi | hypermedia, совпадающее со словами "multi" и "hypermedia", а нам это не нужно.

А вот в выражении

[\.!\?]$

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

Мы убедились, что при поиске подстрок регулярные выражения очень помогают. Но помогут ли они при замене подстрок? Разумеется!

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

/b(.+@.+\.)com

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

Дело в том, что Flash, помимо всего прочего, помещает подстроку, совпадающую с заключенной в скобки частью регулярного выражения, в особую переменную, откуда ее потом можно будет извлечь. Таких переменных (иногда говорят — ячеек) предусмотрено девять, и обратиться к их содержимому можно по их номерам. В частности, извлечь содержимое первой ячейки в нашем случае можно так:

$1

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

$1ru

Как видим, здесь все совсем просто. Мы берем подстроку, найденную первым регулярным выражением, и добавляем к ней окончание "ru".

Можно проверить два приведенных регулярных выражения. Первое нужно набрать в области редактирования Text, верней группы панели Find and Replace, а второе — в области редактирования Text нижней группы. И, конечно же, не забываем включить флажок Regular expressions.

Напоследок осталось привести полный список всех литералов регулярных выражений. Они перечислены в табл. 22.2.

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии