hyget
@hyget

Как регуляркой взять ссылку?

Здравствуйте, нужно из выбрать все url ссылкок из:
a href="https://site.com/aaa-bbb-ccc-ddd-eee-fff-eee"
a href="https://site.com/aaaaa-bbbb-ccccccc-ddddd-eeeee"

но при одном условии: если в ссылке встречается более 3-х символов " - "
т,е такая ссылка a href="https://site.com/aaa-bbb-ccc не пройдет
Подскажите пожалуйста, как это можно реализовать)
  • Вопрос задан
  • 908 просмотров
Решения вопроса 1
iNickolay
@iNickolay
  1. Регулярка для поимки всех ссылок href\=\"(.*)\"
  2. Ну а количество "тире" лучше узнать разбив строку explode'ом и смотреть "длину" массива
$output = [];
$html = '
<a href="https://site.com/aaa-bbb-ccc-ddd-eee-fff-eee">
<a href="https://site.com/aaa-bbb-ccc">
<a href="https://site.com/aaaaa-bbbb-ccccccc-ddddd-eeeee">';

preg_match_all('/href\=\"(.*)\"/', $html, $matches);

foreach($matches[1] as $link) {
    $dashes = explode('-', $link);
    if (count($dashes) > 3) $output[] = $link;
}

var_dump($output);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!

Есть сайт для генерации регулярок - txt2re.com
вдруг вам поможет)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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