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

Регулярные выражения - это такие команды для сложного поиска и замены. Они позволяют делать очень интересные вещи, но, к сожалению, довольно тяжелы в освоении.

Существует несколько функций PHP для работы с регулярными выражениями. Мы начнем знакомится с ними на примере preg_replace. Эта функция первым параметром принимает что менять, а вторым - на что менять, а третьим параметром - строку, в которой нужно заменять:

php<?php
  preg_replace(что менять, на что, строка);
?>

При этом первым параметром наша функция принимает не просто строку, а регулярное выражение, представляющее собой строку с набором команд, расположенных внутри символов решетки #. Эти решетки называются ограничителями регулярных выражений.

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

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

Буквы и цифры обозначают сами себя. В следующем примере мы с помощью регулярного выражения заменим букву 'a' на '!':

php<?php
  preg_replace('#a#', '!', 'bab'); // вернет 'b!b'
?>

А вот точка является специальным символом и обозначает любой символ. В следующем примере мы найдем строку по такому шаблону: буква 'x', затем любой символ, затем опять буква 'x':

php<?php
  preg_replace('#x.x#', '!', 'xax eee'); // вернет '! eee'
?>
Задание 1

Дана строка:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

Напишите регулярку, которая найдет строки 'ahb', 'acb', 'aeb' по шаблону: буква 'a', любой символ, буква 'b'.

Задание 2

Дана строка:

php<?php
  $str = 'ahb acb aeb aeeb adcb axeb';
?>

Напишите регулярку, которая найдет строки 'aeeb', 'adcb', 'axeb' по шаблону: буква 'a', два любых символа, буква 'b'.