@strelov1

Как составить регулярное выражения для сбора HTML ссылок с исключением tel: и mailto:?

Как составить регулярное выражения для сбора HTML ссылок с исключением tel: и mailto:
1<a href="tel:+70000000000">+7 000 000 00 00</a>
2<a href="mailto:info@site.ru">info@site.ru</a>
3<a href="#">Ссылка с анкором</a>
4<a href="http://site.ru/chpu/url">Абсолютный ЧПУ url</a>
5<a href="/o-kompanii">Отоностиельный ЧПУ url</a>
6<a href="http://site.ru/index.php?id=23&param=yes">Абсолютный не ЧПУ url</a>
7<a href="/index.php?id=23&param=yes">Отностительный не ЧПУ url</a>

Вот такой регуляркой я могу получить все нужные мне URL
$pattern = '~(?<=a href=").*?(?=")~i';
$result = preg_match_all($pattern, $html, $out);

но хотелось бы исключить первые 3 типа ссылок

Спасибо за помощь - вот работающий результат
$pattern = '~(?<=a href=")([^\"(?!mailto|tel|#)].*)?(?=")~U';
  • Вопрос задан
  • 674 просмотра
Пригласить эксперта
Ответы на вопрос 2
Попробуйте так:
$pattern = '<a href=\"([^\"(?!mailto|tel|#)].*)\">(.*)<\/a>';
Ответ написан
junk1114
@junk1114
Web-программист
Мне здорово помог в изучении рег. выражений этот сервис www.regexr.com
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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