Использование регулярных выражений
Предположим, например, что нам необходимо найти все нужные адреса электронной почты и заменить у них окончание "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 ] |
