Регулярные выражения это форма "поискового шаблона". Например вам надо найти в документе знак, или набор знаков. Например $ :))
Это может понадобиться при работе интернет форм в интернет-магазине. Там часто используются файлы xml формата. Вот. К примеру вам надо найти быстро, есть ли на складе товар, который ищет клиент. Ну это так, простейший пример.
Итак, давайте познакомимся с обработкой выражений подробнее.
Синтаксис
"Выражение" представляется в виде строки с разделителями. Примерно так:
$exp = "/хлеб/i";
Здесь "хлеб" это разыскиваемый шаблон, i - модификатор, наличие которого говорит о том, что поиск чувствителен к регистру знаков. Разделитель может быть любым знаком кроме числа, буквы, пробела, косой черты с наклоном влево. Например это может быть *.
Функции для работы с выражениями
Вообще-то таких функций множество. Вот самые популярные:
preg_match() - возвращает 1, если шаблон найден в тексте;
preg_match_all() - возвращает число совпадений с разыскиваемым шаблоном. Может вернуть 0;
preg_replace() - возвращает строку, в которой исходный шаблон частично или полностью изменен новыми знаками (словами то есть).
А теперь примеры кода для этих функций (для тренировки).
Функция preg_match()
<?php
$str = "мир";
$pattern = "/р/i";
echo preg_match($pattern, $str); // Печатает 1
?>
Функция preg_match_all()
<?php
$str = "Осенью идут дожди.";
$pattern = "/д/i";
echo preg_match_all($pattern, $str); // Выводит значение 3
?>
Функция preg_replace()
<?php
$str = "Денег нет!";
$pattern = "/нет/i";
echo preg_replace($pattern, "есть", $str); // Выводит "Денег есть!" (если бы все было так просто) 🎃
?>
Модификаторы поиска выражений
Что такое модификатор упоминалось выше :)). Теперь подробнее.
i - выполняет поиск чувствительный к регистру;
m - полилинейный поиск. То есть при поиске будет учитываться, в начале или в конце строки случилось совпадение;
u - выполняется поиск правильных совпадений если страница закодирована в UTF-8.
Применение скобок для удобного поиска
Задачу поиска можно сильно упростить, если "выражение" достаточно сложное. Для этого применяются скобки. Да, обычные скобки. Например:
[abc] - найдет один знак из выражения в скобках. Если вы вдруг не уверены, что надо искать;
[^abc] - найдет знаки, кроме тех которые внутри скобок;
[0-9] - найти число.
Это основное как бы. Есть еще много специальных знаков. Кому интересно, найдите. Их правда очень много, и не стану загружать статью.
Группировка "выражений"
Вы можете использовать круглые скобки () чтобы не писать повторяющиеся элементы шаблона. Например:
<?php
$str = "Половина банана.";
$pattern = "/ба(на){2}/i";
echo preg_match($pattern, $str); // Выведет 1
?>
Напутствие :))
Надеюсь это будет как-то и где-то полезным. Рискну предположить, что такой сайт как Яндекс использует "выражения", так как здесь используют xml файлы. И если вы вдруг захотите устроить интернет магазин, то понимание этих вещей сильно облегчит вам жизнь.
И напоследок, просто перейдите по ссылке : Блог программиста и дизайнера. Просто перейдите, больше ничего. Поддержите мой труд :)) Это так просто. Спасибо!
Пишите в комментариях, что вас интересует и если есть вопросы.