Назад к вопросам
Junior
123
questionbank
Как вы использовали регулярные выражения в своих проектах?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Использовал регулярные выражения для валидации данных, поиска и замены подстрок, парсинга и работы с URI.
Примеры:
-
Валидация 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 невалиден."; } -
Поиск 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]); -
Замена символов:
<?php $string = "Это строка_с_подчеркиваниями."; $cleaned_string = preg_replace("/[_]/", " ", $string); echo $cleaned_string; // Вывод: Это строка с подчеркиваниями. -
Парсинг логов:
<?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 // Размер ) */ -
Маршрутизация (в фреймворках): Хотя напрямую не я писал регулярки для роутинга в готовых фреймворках (Symfony, Laravel), понимал, как они используются для сопоставления URI с контроллерами и действиями.
// Пример (упрощенно, как это может работать внутренне в роутере) // Роут: /users/{id} // Регулярка: #^/users/(\d+)$# // Сопоставление /users/123 -> Извлечение 123 как ID
В целом, использовал preg_match, preg_match_all, preg_replace и preg_split, выбирая функцию в зависимости от задачи.