ВСЕ СТАТЬИ
Блог начинающего программиста
Кнопка войти через Яндекс
Регистрация
Программирование на JavaScript для начинающих 2.0

Самый востребованный язык программирования

Какой язык программирования должен знать абсолютно любой программист?

Узнай прямо сейчас!

Регулярные выражения

Опубликовано: 2017-08-01
Служат для поиска фраз, слов, символов в тексте. Эти созданные шаблоны ищут подстроку в тексте. Регулярные выражения позволяют одной строкой выполнить например, такие задачи: узнать, имеются ли в строке цифры; найти и заменить или удалить несколько вопросительных знаков, идущих подряд; найти в тексте почтовые адреса, телефонные номера.
Задача:
1. Создать текстовое поле и ввести дату в формате ММ.ДД.ГГГГ, создать регулярное выражение для проверки этой даты на корректность.
2. Вывести соответствующее сообщение.
Решение:

<?php
$reg = '{^\s*( (\d\d) \s* [[:punct:]] \s*(\d\d)\s* [[:punct:]] \s*(\d\d\d\d))\s*$}xs';
$dat = $_POST['dat'];
$match = preg_match ($reg, "$dat", $pockets);
$m = $pockets[2];
$d = $pockets[3];
$y = $pockets[4];
$check = (checkdate ($m, $d, $y));
if (empty ($_POST['dat']))
    echo 'Введите дату в формате ММ.ДД.ГГГГ в форму.';
elseif ($match == 0)
    echo 'Введите корректную дату.';
elseif ($check == 0)
    echo 'Введите правильную дату.';
else
    echo "Введена корректная дата: $m.$d.$y";
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Регулярное выражение</title>
    </head>
    <body>
        <form method="post">
            <p>
                Ввести дату в формате ММ.ДД.ГГГГ:
            </p>
            <input type="text" name="dat">
            <input type="submit">
        </form>
    </body>
</html>

Реализация задачки в браузере: посмотреть в новом окне

Задание:
Создать текстовое поле с e-mail и создать регулярное выражение, чтобы проверять e-mail на корректность. Выводить соответствующее сообщение на страницу.
Решение:
 

<?php
$reg = "/^\w+([-_\.])*\w+?@\w+([-_.])*\w+\.\w{2,4}$/";
$dat = $_POST['dat'];
$match = preg_match ($reg, "$dat");
if (empty ($_POST['dat']))
{
    echo 'Введите e-mail в форму.';
}
 elseif ($match == 0)
{
    echo "Введен неправильный e-mail: $dat";
}
else
{
    echo "Введен корректный e-mail: $dat";
}
?>

<!DOCTYPE html>
<html>
    <head>
            <meta charset="utf-8">
            <title>Регулярное выражение</title>
        </head>
    <body>
        <form method="post">
            <p>
                Ввести e-mail:
            </p>
            <input type="text" name="dat">
            <input type="submit">
        </form>
    </body>
</html> 

Так это выглядит в браузере: посмотреть в новом окне

Еще одна задачка на тему регулярных выражений.
Найдет практическое применение у сайтостроителей.
1. Создайте текстовую область. Обработайте форму и замените все найденные адреса сайтов в тексте на "ссылка удалена".
2. Все найденные адреса сохраните в массив. И выведите получившийся текст и массив с адресами сайтов.
Решение:

<?php
function replaceSite ($text)
{
    $text = $_POST['text'];
    $reg = "/(http:\/\/|https:\/\/)([a-z]+[-_\.]*[a-z]*.[(ru)(com)(info)(рф)])|([a-z]+[-_\.]*[a-z]*.[(ru)(com)(info)(рф)]\/*[a-z]*.[a-z]*.[a-z]*.\w*)/i";
    return preg_replace ($reg, "<ссылка_удалена>", $text);
}
echo replaceSite($text);
echo "<br />";
$text = $_POST['text'];
$reg = "/(http:\/\/|https:\/\/)([a-z]+[-_\.]*[a-z]*.[(ru)(com)(info)(рф)])|([a-z]+[-_\.]*[a-z]*.[(ru)(com)(info)(рф)]\/*[a-z]*.[a-z]*.[a-z]*.\w*)/i";
preg_match_all ($reg, $text, $matches);
echo "<br />";
print_r ($matches);
echo "<br />";
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Регулярное выражение</title>
    </head>
    <body>
        <form method="post">
            <p>
                Ввести комментарий:
            </p>
            <p><textarea rows="10" cols="45" name="text"></textarea></p>
            <input type="submit">
        </form>
    </body>
</html>

Реализация в браузере: посмотреть в новом окне

Кипящий чайник с выхлопом клубов пара из носика

Интенсив «Основы программирования»

Бесплатный курс по программированию

Начать обучение

Бесплатный курс по основам PHP

Бесплатный Видеокурс по PHP!

Пример создания PHP-сайта!

Подробнее

Комментарии

Пока комментарий нет

Оставить свой комментарий:

Кнопка войти через Яндекс Зарегистрироваться

Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка
PHP хостинг ХостиЯ