Регулярные выражения - это такие команды для сложного поиска и замены. Они позволяют делать очень интересные вещи, но, к сожалению, довольно тяжелы в освоении.
Существует несколько функций PHP для работы
с регулярными выражениями. Мы начнем знакомится
с ними на примере preg_replace
. Эта
функция первым параметром принимает что менять,
а вторым - на что менять, а третьим параметром
- строку, в которой нужно заменять:
<?php
preg_replace(что менять, на что, строка);
?>
При этом первым параметром наша функция принимает
не просто строку, а регулярное выражение,
представляющее собой строку с набором команд,
расположенных внутри символов решетки #
.
Эти решетки называются ограничителями
регулярных выражений.
После ограничителей можно писать модификаторы - команды, которые изменяют общие свойства регулярного выражения.
Сами регулярные выражения состоят из двух типов символов: из тех, которые обозначают сами себя и из символов-команд, которые называются специальные символы.
Буквы и цифры обозначают сами себя. В следующем
примере мы с помощью регулярного выражения
заменим букву 'a'
на '!'
:
<?php
preg_replace('#a#', '!', 'bab'); // вернет 'b!b'
?>
А вот точка является специальным символом
и обозначает любой символ. В следующем
примере мы найдем строку по такому шаблону:
буква 'x'
, затем любой символ, затем
опять буква 'x'
:
<?php
preg_replace('#x.x#', '!', 'xax eee'); // вернет '! eee'
?>
Дана строка:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Напишите регулярку, которая найдет строки
'ahb'
, 'acb'
, 'aeb'
по шаблону: буква 'a'
, любой символ,
буква 'b'
.
Дана строка:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
Напишите регулярку, которая найдет строки
'abba'
, 'adca'
, 'abea'
по шаблону: буква 'a'
, два любых
символа, буква 'b'
.