Работа с регулярными выражениями

Автор: content Воскресенье, Апрель 8th, 2012 Нет комментариев

Рубрика: Язык PHP

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

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

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

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

\ — Следующий символ является специальным. Так же применяется для указания символов, которые могут использоваться в качестве модификаторов. \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 адрес имеет вид «слово@слово.слово».

Автор: php.su

Источник: http://www.php.su/articles/?cat=examples&page=024

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты