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

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

Найти все e-mail адреса в тексте, заменить адреса сайтов на ссылки, найти повторяющиеся слова в предложении — примерно такие задачи решаются при помощи регулярок.

Если вы еще не умеете составлять регулярные выражения и вас ввводит в замешательство, когда в коде вы видите что-то такое: /^[a-zA-Z0-9\s]{2,}$/
то начать можно с этих статей:
Регулярные выражения для самых маленьких
Или
Регулярные выражения, Часть I
Регулярные выражения, Часть II

Если вы хотите стать настоящим экспертом в регулярных выражениях, то по ним написана целая книга: Дж.Фридла "Регулярные выражения", которую можно скачать здесь.

Функции для работы с регулярными выражениями

Для работы с регулярными выражениями в PHP имеется ряд функций. Найти описание каждой из них вы можете по ссылке: Функции PCRE

Чаще всего приходится пользоваться функцией preg_replace — она выполняет замену подстроки по шаблону.
Кстати есть и другие способы поиска подстроки.

На втором месте по популярности preg_match — позволяет узнать соответствует ли строка регулярному выражению и получить массив с результатами поиска.

Также довольно часто используется preg_match_all — усовершенствованный вариант preg_match, который ищет не одно, а все соответствия шаблону в тексте.

А вот и простой пример, который поможет понять принцип работы функции preg_match

$html = 'content <title>hello php!</title> content';

if (preg_match("!<title>(.*?)</title>!si", $html, $matches)){
   echo $matches[1];
} else {
   echo "Тег не найден";
}

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

https://regexr.com/ составление регулярных выражений — трудоемкий процесс, и с первого раза можно составить только самые простые шаблоны. Сервис regexp поможет протестировать ваш код в режиме реального времени, и сразу увидеть какие фрагменты текста затрагивает ваш код.

http://www.txt2re.com/ — конструктор регулярок для ленивых. Хотя для начала нужно побороть лень, чтобы разобраться как он работает.

Если вам нужна помощь в составлении регулярки — пишите в комментариях.