Не пропусти главное событие года - Конференцию веб-разработчиков DevConf!
Москва, 21-22 июня.

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


Что такое регулярные выражения?
Это замечательный инструмент для работы с текстом.
Такой же революционный, по сравнению с обычными строковыми функциями, как БД - по сравнению с текстовыми файлами. Это специальный язык для работы с текстом. Причём подчас одна строчка с использованием регулярных выражений может заменить страницу другую обычного кода!

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

В данном топике собраны все ссылки, которые помогут вам быстро освоить и эффективно использовать регулярные выражения.
Во-первых, это прекрасные статьи для начинающих Сергея Колесниченко (Yukko)
Регулярные выражения, Часть I
Регулярные выражения, Часть II
Материал изложен в лёгкой и доступной форме, снабжён примерами решения часто встречающихся задач. Служит для первичного знакомства с предметом.

При практическом же использовании не обойтись без справочных материалов официальной документации.
В PHP поддерживается два стандарта регулярных выражений - POSIX и PCRE.
Первый считается более устаревшим и медленным, вы не найдёте по нему хороших примеров и даже документация не переведена на русский.
По PCRE (функции preg_*) документация очень солидная.
Во-первых, это подробнейшее изложение синтаксиса и пояснение значения всех спецсимволов - Синтаксис регулярных выражений
Во-вторых, - Общее описание, список функций и полезные комментарии
В-третьих, пояснение довольно важного элемента - Модификаторов шаблонов
Ну, и документация на все функции, разумеется. Основными из которых являются preg_match, preg_match_all и preg_replace с незаменимыми комментариями пользователей.
Всё (кроме комментариев) - на русском языке.

Нельзя, так же, обойти вниманием фундаментальный труд столпа российского PHP Дмитрия Бородина,
Регулярные выражения в PHP (сравнение Perl и PHP)

Так же можно скачать знаменитую книгу Дж.Фридла "Регулярные выражения" в формате DjVu.
Книга написана с примерами на Perl, но разобраться там несложно.

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

чтобы данный текст не выглядел сухой теорией, приведем пример решения наиболее распространённой задачи - "подсветка ссылок" или превращение http://phpfaq.ru в ссылку

$text=preg_replace("#(https?|ftp)://\S+[^\s.,>)\];'\"!?]#",'<a href="\\0">\\0</a>',$text);

Им можно пользоваться, не понимая ни слова. А узнать, что означают эти закорючки, можно из ссылок выше :-)