Регулярное выражение (выдираем URL'ы со страницы)

Кинотавр

Новичок
Регулярное выражение (выдираем URL'ы со страницы)

Здравствуйте.

Есть регулярное выражение, выдирающее все URL'ы из страницы.
PHP:
preg_match_all("/(http:\\/\\/)?([a-z_0-9-.]+\\.[a-z]{2,3}(([ \"'>&\?\r\n\t])|(\\/([^ \"'>&\?\r\n\t]*)?)))/",$buf,$url);
Мне надо, чтобы оно выдирало не просто URL'ы, а только URL'ы из ссылок.

Помогите дописать regexp.

Спасибо.
 

Popoff

popoff.donetsk.ua
preg_match_all("/href=\"(http:\\/\\/)?([a-z_0-9-.]+\\.[a-z]{2,3}(([ \"'>&\?\r\n\t])|(\\/([^ \"'>&\?\r\n\t]*)?)))\"/",$buf,$url);
 

Popoff

popoff.donetsk.ua
это как вариант. А вообще, думаю, без автомата будет сложно запрограммировать...
 

Кинотавр

Новичок
Без какого автомата?

Спасибо.
Но этот вариант не совсем подходит
URL'ы могут быть такими:
<a href="out.cgi?s=10&url=http://www.skjfvh.com/srgergv/wrf.htm&p=40">...</a>
 

Popoff

popoff.donetsk.ua
Если для тебя критично, что бы href были именно внутри тега a, а не встретились, например, просто в тексте: я же могу написать такой текст:
Код:
<a href="qwe.php">href="rrr.html"</a>
то только автоматы.
 

Popoff

popoff.donetsk.ua
хотя можно добавить preg_match_all("/<a[^>]*href=\"[^\"]+\"/",$buf,$url);
о :) точно :)
 
Сверху