取得する必要があるのは 5 だけなので、非常に簡単です。
$r = pret_match_all('~\/(\d+)"~', $subject, $matches);
その後、最初に一致するグループに入ります。
リンク テキストなどの詳細情報が必要な場合は、HTML パーサーを使用することをお勧めします。
require('Net/URL2.php');
$doc = new DOMDocument();
$doc->loadHTML('<a class="tag" href="http://www.yahoo.com/5"> blah blah ...</a>');
foreach ($doc->getElementsByTagName('a') as $link)
{
$url = new Net_URL2($link->getAttribute('href'));
if ($url->getHost() === 'www.yahoo.com') {
$path = $url->getPath();
printf("%s (from %s)\n", basename($path), $url);
}
}
出力例:
5 (from http://www.yahoo.com/5)