Заметка о регулярных выражениях. Зачем они нужны, где используются и как их применять. Иными словами о поиске в PHP.
Использование регулярных выражений в функциях PHP, замены preg_replace, поиска preg_match.
Например, рассмотрим такую функция:
То что внутри этой функции, все эти на первый взгляд непонятные значения, называется регулярным выражением (PHP RegEx). Они используются для поиска конкретных данных.
Шаблон (символы) поиска берет своё начало с языка Perl.
Регулярные выражения делятся на метасимволы и модификаторы метасимволов.
Метасимволы — определяют группу обычных символов. Модификаторы — помогают понять сколько и какое количество этих символов искать.
Метасимволы регулярного выражения
Значения некоторых метасимволов из примера выше (также они будут встречаться ниже):
\ - считать следующий элемент обычным символом (не командой)
. - один произвольный (любой случайный) символ
() - группировка (подмаска)
[ ] - класс символов
$ - конец строки
| - альтернатива (или)
Модификаторы регулярного выражения
? - искать 1 раз или меньше
Ещё модификаторы, но не используются в текущих примерах:
{n} - точное количество раз (заменить n цифрой)
{n,5} - по меньшей мере 5 раз
{n,m} - не меньше n, но и не больше m
Любой из вышеперечисленных модификаторов сочетается с модификатором «?». Он необходим для ограничения поиска, потому что по умолчанию все метасимволы повторяются по принципу «жадности» (без ограничения).
Например:
(<.*?>) - найдет только теги
Дополнительные опции
Кроме модификаторов и метасимволов есть опции (приведены не все):
/s - делает точки (.) переносом строки и возврата каретки (сдвиг влево).
/U - превращается все количественные метасимволы в "не жадные".
Опции могут сочетаться вместе:
Шаблоны
Также существуют шаблоны, что-то вроде аналога метасимволов, один из них:
На данной странице приведены не все параметры регулярных выражений. Это сделано специально, чтобы не запутать новичка и в то же время дать ему основные инструменты для поиска. В дальнейшем, при желании углубиться в детали, в Интернете можно найти более подробную инструкцию.
Эксперименты
Поэкспериментировать с регулярным выражением можно на этом сайте. Вверху вбиваете регулярное выражение, а снизу данные html в которых ищите. При правильном подборе регулярного выражения будет выделяться нужный вам участок кода.