Регулярные выражения, очень полезная штука для разработчиков. С помощью них можно найти одинаковые слова в тексте, проверить введенные данные и еще много полезных вещей. В этом посте я собрал 10 регулярных выражений, которые должны быть под рукой у любого web-разработчика.
Регулярное выражение Значение
foo Строка «foo»
^foo «foo» в начале строки
foo$ «foo» в конце строки
^foo$ В строке содержится только одно слово»foo»
a, b, или c
[a-z] Все буквы в нижнем регистре
[^A-Z] Любой символ, который не является буквой в верхнем регистре
[0-9.-] Любая цифра, точка или дефис
^[a-zA-Z0-9_]{1,}$ Любое слово содержащее 1 букву, цифру или _
[b]PHP функции для работы с регулярными выражениями
Функция Описание
preg_match() Функция preg_match() ищет в заданном тексте совпадения с шаблоном, если совпадене есть возвращает true, если нет то false
preg_match_all() Функция выполняет поиск шаблона в статье
preg_replace() Функция preg_replace() выполняет поиск и замену по регулярному выражению
preg_split() Функция preg_split() разбивает строку по регулярному выражению
preg_grep() Функция preg_grep() возвращает массив, состоящий из элементов входящего массива , которые соответствуют заданному шаблону
preg_ quote() Функция preg_ quote() принимает строку и добавляет обратный слеш перед каждым служебным символом. Проще говоря, она экранирует символы
Валидация имени домена
Проверяем имя домена.
$url = "http://2coders.ru/";
if (preg_match('/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/', $url)) {
echo "Все правильно";
}
else
{
echo "Вы ввели неправильное имя домена";
}
Выделение определенного слова в тексте
Это регулярное выражение можно использовать, например, для того чтобы выделить найденые слов при поиске.
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque porttitor, odio at feugiat vulputate, neque nulla dignissim ante, ut posuere leo arcu at mauris.";
$text = preg_replace("/\b(odio)\b/i", '<span style="background:#eef938">\1</span>', $text);
echo $text;
Удаление повторяющихся слов
Написали пару одинаковых слов? Не проблема, с помощью этого регулярного выражения вы сможете их легко удалить.
$text = preg_replace("/s(w+s)1/i", "$1", $text);
Удаление повторяющихся знаков препинания
Почти тоже самое, что и регулярное выражение выше, только будут удаляться знаки препинания.
$text = preg_replace("/.+/i", ".", $text);
Автоматическая генерация смайликов
Замена смайликов на картинки.
$text = "Текст со смайликом =)";
echo str_replace('=)','<img src="smileys/smile.png">',$text);
Проверка логина
Логин может состоять из букв, цифр, дефисов и подчёркиваний. Длина от 3 до 16 символов.
!preg_match("/^[a-z0-9_-]{3,16}$/",$login)
Проверка email
Email должен быть такого вида: логин@поддомен.домен.
!preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/",$email)
Проверяем шестнадцатиричный цвет
Цвет может быть задан и без «#»;
$color = "#555555";
if (preg_match('/^#?([a-f0-9]{6}|[a-f0-9]{3})$/', $color))
{
echo "Цвет введен правильно";
}
Получаем title страницы
С помощью этого регулярного выражения, можно вытащить title страницы.
$fp = fopen("http://www.2coders.ru","r");
while (!feof($fp) ){
$page .= fgets($fp, 4096);
}
$title = eregi("<title>(.*)</title>",$page,$regs);
echo $regs[1];
fclose($fp);
Проверка времени
Время должно быть задано в таком виде: mm:hh.
$time = "10:11";
if (!preg_match('/^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/', $time))
{
echo "Время введено неправильно";
}