Macromedia Dreamweaver MX

Использование регулярных выражений

Как и было обещано, сейчас мы познакомимся с регулярными выражения­ми. Чем же они могут нам помочь?

Представим себе такую ситуацию. Вам нужно найти в исходном HTML - коде страницы интернет-адрес, причем любой. Как вы это сделаете? Пра­вильно, введете в поле Search For окна поиска и замены (см. рис. 2.27) сим­волы www. И найдете... кое-что. Но не все. Ведь интернет-адреса совсем не обязательно начинаются на "www". Что в этом случае искать? Точку? Но точек в тексте и так хватает, и далеко не всякая из них является частью ин­тернет-адреса.

В этом случае нам на помощь придет регулярное выражение. Оно будет иметь следующий вид:

"http://.+..{2, 3}"

Ну и как оно вам? Больше похоже на бессмысленный набор символов, в котором с трудом угадывается что-то знакомое. Признаться, автор и сам сначала с трудом в них разбирался. Ему помогала вот такая табличка — см. табл. 2.1.

Таблица 2.1. Регулярное выражение поиска интернет-адресов

Символы

Описание

"http://

Первая кавычка и начало интернет-адреса

Точка обозначает любой символ

+

Плюс обозначает, что предыдущий символ должен повториться мини­мум один раз

.

Обычная точка. Ее предваряет обратная косая черта, т. к. точка — слу­жебный символ

Опять любой символ

{2,3}

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

"

Закрывающая кавычка

Вы можете попробовать это регулярное выражение в действии. Только не забудьте выбрать в раскрывающемся списке Search For пункт Source Code.

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

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

"(multi|hyper)media"

"multi I hypermedia"

Совпадающее со словами "multi" и "hypermedia".

А регулярное выражение

"/b.+0.+.com"

Ищет адреса электронной почты на серверах, чей интернет-адрес оканчива­ется на "сот". Здесь вам все знакомо, за исключением литерала /ь, обозна­чающего границу слова. То есть точка задает поиск любого символа, а /ь. — только символа, с которого начинается слово (пробел или возврат каретки). А как насчет вот такого выражения:

"[.!?]$"

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

Таблица 2.2. Регулярное выражение поиска последнего знака препинания абзаца

Символы

Описание

[.!?]

Один из возможных символов: точка, восклицательный и во­просительный знаки. Заметьте, что вопросительный знак пред­варен обратной косой чертой, т. к. иначе Dreamweaver воспри­нял бы его как литерал

$

Этот литерал обозначает конец строки

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

Еще как!

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

"/Ь(.+0.+.)сот"

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

А вот зачем.

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

"$1"

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

"$lru"

Здесь все совсем просто. Мы берем первую подстроку и добавляем к ней окончание "ru". Наберите в окне документа несколько произвольных адре­сов электронной почты и проверьте наши выражения. Они работают.

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

Таблица 2.3. Литералы регулярных выражений

Литерал

Описание

-

Начало строки

$

Конец строки

*

Предыдущий символ должен встретиться ноль, один или больше раз

+

Предыдущий символ должен встретиться один или больше раз

9

Предыдущий символ должен встретиться ноль или один раз

Любой символ за исключением символа новой строки

Х|у

Должен встретиться символ X или символ у

{П}

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

{т, п}

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

[abc]

Должен встретиться один из символов, перечисленных в квадратных скобках. Можно задавать диапазоны символов, например [a—d] заме­няет [abed]

[лаЬс]

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

Ь

Граница слова (пробел или возврат каретки)

в

Не граница слова

d

Любая цифра. Эквивалентен [0-9]

Таблица 2.3 (окончание)

Литерал

Описание

в

Любой символ, кроме цифры. Эквивалентен [л0-9]

f

Прогон листа

п

Перевод строки

г

Возврат каретки

s

Любой пробельный символ (пробел, табуляция, прогон страницы или перевод строки)

S

Любой символ, кроме пробела

t

Табуляция

w

Любой алфавитно-цифровой символ или подчеркивание. Эквивалентен

[а-гА-гО-9_]

W

Любой символ, кроме алфавитно-цифрового и подчеркивания. Эквива­лентен [ла-гА-гО-9 ]

Macromedia Dreamweaver MX

Заключение

"А напоследок я скажу..." — поется в старинном русском романсе. Что же мне сказать напоследок?.. Книга о Dreamweaver закончена. Я рассказал об этой программе все, что знал и что мог …

Страницы общего доступа

Страницы общего доступа предназначены для обычных посетителей сайта. Как правило, они создаются после административных страниц; в этом слу­чае вы можете использовать последние как образцы для создания "обычных" страниц. В самом …

Реализация выхода с сайта

Осталось реализовать выход с сайта — и работу над административными страницами можно считать законченной. Как вы помните, каждый посети­тель, вошедший на сайт с разграничением доступа, должен по окончании работы с …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.