Главная страница статей --> Советы по фотошопу, графике и хитрости в построении php кода

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

Источник: realcoding.net

Что же такое регулярные выражения?


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

Рассмотрим простые (далеко не все) правила формирования шаблона.

Шаблон состовляется из набора модификаторов, некоторые из которых приведены в нижеследующей таблице.

\ - Следующий символ является специальным. Так же применяется для указания символов, которые могут использоваться в качестве модификаторов.\n - соответствует символу перевода строки
\* - символ *, а * - модификатор
^ - Маркер начала строки.^abc - строка, начинающаяся с abc.
$ - Маркер конца строки.abc$ - строка, заканчивающаяся на abc.
* - Предыдущий символ встречается 0 или больше раз.Шаблону w* соответствуют строки what, buka, agwt
+ - Предыдущий символ встречается 1 или больше раз.Шаблону w+ соответствуют строки what, agwt.
Строка buka уже не соответствует.
? - Предыдущий символ встречается 0 или 1 раз.Шаблону w?r соответствуют строки ara, awra.
- Соответствует любому символу, отличному от \n.

Это простейшие модификаторы, знания которых нам пока хватит.

В PHP существует несколько функций для работы с регулярными выражениями: ereg(), ereg_replace(), eregi(), ereg_replacei() и split().

Функции с суффиксом i представляют из себя аналоги функций без этого суффикса, не чувствтительные к регистру операндов.

Рассмотрим функцию ereg(), синтаксис которой:

int ereg(string pattern, string string, array [regs]);

Рассмотрим некоторый адрес maxx@mail.ru. Очевидно, что правдоподобный адрес должен иметь вид "слово@слово.слово". В терминах шаблонов произвольный символ обозначается знаком "." (мы не будем сейчас учитывать тот факт, что в адресах допустимы не все символы). В каждом слове должен быть по крайней мере один символ, таким образом, шаблон слова будет иметь вид ".+". Вспомним теперь, что "." - это модификатор, и для явного указания точки (в качестве символа) нужно писать "\.".

Таким образом шаблон будет иметь вид ".+@.+\..+".

Наша проверка будет иметь следующий вид:

if (ereg(.+@.+\..+, $email)) {
echo
Адрес, вроде, правильный;
}
else {
echo
Введите, батенька, адрес заново;
}

После такой проверки мы можем быть уверены, что e-mail адрес имеет вид "слово@слово.слово".



Похожие статьи:
- И снова отказываемся от модуля CGI?
- Форматируем дату, полученную из БД
- Потенциальная уязвимость php-скриптов
- Десять правил написания безопасного кода на PHP
- CSS: советы и приёмы, часть 2
- Создание системы учета посещений
- Как узнать размер файла на каком-то веб-сервере
- Избавляемся от cellpadding и cellspacing
- Особенности ссылок «вверх страницы»
- Дизайнер и заказчик. Какой нужен сайт?
- Новый формат SVG создаст конкуренцию Flash?
- PHP и XML
- Этика и нравственность в Internet


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.001]