Назад к вопросам
Junior
123
questionbank

Как вы использовали регулярные выражения в своих проектах?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Использовал регулярные выражения для валидации данных, поиска и замены подстрок, парсинга и работы с URI.

Примеры:

  1. Валидация E-mail:

    <?php
    $email = "test@example.com";
    if (preg_match("/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $email)) {
        echo "Email валиден.";
    } else {
        echo "Email невалиден.";
    }
    
  2. Поиск URL в тексте:

    <?php
    $text = "Посетите наш сайт https://example.com или свяжитесь по адресу mailto:info@example.com";
    preg_match_all("/\b(?:https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]/i", $text, $matches);
    print_r($matches[0]);
    
  3. Замена символов:

    <?php
    $string = "Это строка_с_подчеркиваниями.";
    $cleaned_string = preg_replace("/[_]/", " ", $string);
    echo $cleaned_string; // Вывод: Это строка с подчеркиваниями.
    
  4. Парсинг логов:

    <?php
    $log_line = '192. Модальные окна 168.1.1 - - [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1. Вопросы-ответы 0" 200 2326';
    preg_match('/^(\S+) (\S+) (\S+) \[([^\]]+)\] "([^"]+)" (\d+) (\d+)$/', $log_line, $matches);
    print_r($matches);
    /*
    Array
    (
        [0] => 192.168.1.1 - - [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
        [1] => 192.168.1.1  //  IP-адрес
        [2] => -            // User
        [3] => -            // Group
        [4] => 10/Oct/2000:13:55:36 -0700 // Дата и время
        [5] => GET /apache_pb.gif HTTP/1.0 // Запрос
        [6] => 200           // Код статуса
        [7] => 2326          // Размер
    )
    */
    
  5. Маршрутизация (в фреймворках): Хотя напрямую не я писал регулярки для роутинга в готовых фреймворках (Symfony, Laravel), понимал, как они используются для сопоставления URI с контроллерами и действиями.

    // Пример (упрощенно, как это может работать внутренне в роутере)
    // Роут: /users/{id}
    // Регулярка: #^/users/(\d+)$#
    // Сопоставление /users/123 -> Извлечение 123 как ID
    

В целом, использовал preg_match, preg_match_all, preg_replace и preg_split, выбирая функцию в зависимости от задачи.