В языке программирования, в частности PHP, регулярные выражения представляют из себя специальные записи «маски», с помощью которых может производиться анализ значений каких-либо переменных согласно установленному шаблону. Удобство использования регулярных выражений в скриптах играет существенную роль, так как программирование само по себе подразумевает работу с данными.
Теперь о том, где могут быть использованы регулярные выражения. К примеру, у вас на сайте есть какая либо форма, которая содержит некоторый набор полей, их предположительно должен заполнить пользователь, и отправить на сервер. На стороне сервера нужно проверять данные на корректность ввода, и тут могут пригодиться регулярные выражения. На самом деле регулярки, как их называют по-простому, могут использоваться в различных участках кода, там, где есть необходимость произвести анализ данных, для дальнейших манипуляций с ними.
Ранее в нашем блоге так же публиковались статьи о парсинге текста и замене в них ссылок, извлечении ссылок из веб-страниц, и т.д. В отборе нужных данных из общей массы там так же используются регулярные выражения.
В данном посту я решил сделать подборку популярных выражений, которые могут пригодиться на практике многократно.
Регулярное выражение для проверки логина:
^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$
Регулярное выражение для проверки набора букв и цифр русского и английского алфавита:
^[а-яА-ЯёЁa-zA-Z0-9]+$
Регулярное выражение для проверки корректности доменного имени сайта:
/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i
Регулярное выражение для проверки корректности md5-хэша:
/^[a-f0-9]{32}$/
Регулярное выражение для проверки шестнадцатеричного значения цвета:
/^#(?:(?:[a-fd]{3}){1,2})$/i
Регулярное выражение для проверки IPv4 адреса:
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
Регулярное выражение для проверки IPv6 адреса:
((^|:)([0-9a-fA-F]{0,4})){1,8}$
Регулярное выражение для проверки MAC-адреса:
([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}
Регулярное выражение для проверки даты в формате YYYY-MM-DD:
[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])
Регулярное выражение для проверки даты в формате DD/MM/YYYY:
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
Регулярное выражение для проверки времени в формате HH:MM:SS
^([0-1]\d|2[0-3])(:[0-5]\d){2}$
Статейка будет постепенно дополняться, предлагаю оставлять свои варианты шаблонов регулярных выражений для проверки, не забываем сохранить страничку в закладки:)
Пример использования регулярного выражения:
if (preg_match('/^[a-f0-9]{32}$/', $md5)){ echo 'MD5 в порядке'; } else { echo 'MD5 имеет недопустимый формат'; }