Задать вопрос
@kna999

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

Всем привет, запутался с регулярками, нужно создать маску для поиска ссылок регулярным выражением.
https://www.site.ru/news/###/###/###/###/SAMASSILKA.html

Получилось только так
href="([^"]+?)"
Но забирает все ссылки со страницы вообще, а нужно конкретного формата как выше
  • Вопрос задан
  • 369 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Я не большой любитель регулярных выражений, но подскажу как решить задачу без них:
function doesMatchMyFormat(string $url) : bool {
    if (filter_var($url, FILTER_VALIDATE_URL) === false) {
        return false;
    }
    
    $host = parse_url($url, PHP_URL_HOST);
    if ($host !== "www.site.ru") {
        return false;
    }
    
    $path = parse_url($url, PHP_URL_PATH);
    $parts = explode("/", $path);
    if ($parts[1] !== "news") {
        return false;
    }
    if (count($parts) !== 7) {
        return false;
    }
    
    return true;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы