Использование регулярных выражений
Предположим, например, что нам необходимо найти все нужные адреса электронной почты и заменить у них окончание "com" на "ru". Для поиска в этом случае мы используем уже знакомое и работающее регулярное выражение:
"/b(.+@.+\.)com"
Постойте, но зачем мы взяли часть его в скобки? Ведь скобки используются для группировки, отделения части регулярного выражения от других частей. Здесь же ничего отделять не нужно – все и так работает.
А вот зачем.
Дело в том, что Dreamweaver, кроме всего прочего, помещает подстроку, совпадающую с заключенной в скобки частью регулярного выражения, в особую ячейку памяти, откуда ее можно потом будет извлечь. Таких ячеек памяти всего девять, и обращаться к их содержимому можно по номеру. В частности, извлечь содержимое первой ячейки в нашем случае можно так:
"$1"
Тогда заменить окончание почтового адреса можно с помощью такого регулярного выражения:
"$1ru"
Здесь все совсем просто. Мы берем первую подстроку и добавляем к ней окончание "ru". Наберите в окне документа несколько произвольных адресов электронной почты и проверьте наши выражения. Они работают.
Напоследок самое время привести полный список всех литералов регулярных выражений. Они перечислены в табл. 2.3.
Таблица 2.3. Литералы регулярных выражений.
Литерал | Описание |
---|---|
^ | Начало строки |
$ | Конец строки |
* | Предыдущий символ должен встретиться ноль, один или больше раз |
+ | Предыдущий символ должен встретиться один или больше раз |
9 | Предыдущий символ должен встретиться ноль или один раз |
. | Любой символ за исключением символа новой строки |
х|у | Должен встретиться символ х или символ у |
{n} | Предыдущий символ должен встретиться точно n раз |
{m, n} | Предыдущий символ должен встретиться от n до m раз |
[abc] | Должен встретиться один из символов, перечисленных в квадратных скобках. Можно задавать диапазоны символов, например [a-d] заменяет [abed] |
[^аbс] | Должен встретиться любой символ, кроме перечисленных в квадратных скобках. Можно задавать диапазоны символов |
\b | Граница слова (пробел или возврат каретки) |
\B | Не граница слова |
\d | Любая цифра. Эквивалентен [0-9] |
\в | Любой символ, кроме цифры. Эквивалентен [^0-9] |
\f | Прогон листа |
\n | Перевод строки |
\r | Возврат каретки |
\s | Любой пробельный символ (пробел, табуляция, прогон страницы или перевод строки) |
\S | Любой символ, кроме пробела |
\t | Табуляция |
\w | Любой алфавитно-цифровой символ или подчеркивание. Эквивалентен [a-zA-Z0-9_] |
\W | Любой символ, кроме алфавитно-цифрового и подчеркивания. Эквивалентен [^а-zА-z0-9 ] |