php регулярное выражение для получения определенного URL-адреса

Я хотел бы получить URL-адреса с веб-страницы, которая начинается с «../category/» из следующих тегов:

<a href="../category/product/pc.html" target="_blank">PC</a><br> <a href="../category/product/carpet.html" target="_blank">Carpet</a><br> 

Любое предложение было бы очень оценено.

Благодаря!

Никаких регулярных выражений не требуется. Достаточно простого запроса XPath с DOM:

 $dom = new DOMDocument; $dom->loadHTML($html); $xpath = new DOMXPath($dom); $nodes = $xpath->query('//a[starts-with(@href, "../category/")]'); foreach ($nodes as $node) { echo $node->nodeValue.' = '.$node->getAttribute('href').PHP_EOL; } 

Будет печать:

 PC = ../category/product/pc.html Carpet = ../category/product/carpet.html 

Это регулярное выражение ищет вашу строку ../category/ :

 preg_match_all('#......="(\.\./category/.*?)"#', $test, $matches); 

Все текстовые литералы используются для сопоставления. Вы можете заменить ….., чтобы сделать его более конкретным. Только \. нужно ускользнуть. .*? ищет строку переменной длины. И () фиксирует совпадающее имя пути, поэтому оно появляется в $ match. В руководстве объясняется остальная часть синтаксиса. http://www.php.net/manual/en/book.pcre.php