Получить все якорные теги - PullRequest
2 голосов
/ 12 января 2012

Добрый день!

Мое регулярное выражение действительно плохое, и я хотел бы попросить помощи в моем проекте.

У меня есть содержимое, которое я сканировал с других сайтов, и я хотел бы получить все теги привязки, в которых есть эта строка.

target="_blank"

Как мне это сделать? Любое предложение будет с благодарностью.

Спасибо

Ответы [ 3 ]

2 голосов
/ 12 января 2012

Как уже упоминалось в комментариях, регулярные выражения не являются здесь ответом.

Используйте DOM и XPath для достижения того, что вы хотите

$doc = new DOMDocument;
$doc->loadHTMLFile('http://www.example.com/some-file.html');

$xpath = new DOMXPath($doc);
$anchors = $xpath->query('//a[@target="_blank"]');
1 голос
/ 12 января 2012

$dom = new DOMDocument();
$dom->loadHtml($yourCobtent);

$xpath = new DOMXpath($dom);
$yourAnchors = $xpath->query('//a[@target="_blank"]');

0 голосов
/ 12 января 2012

согласен с @quentin, однако вы можете использовать regexr, (http://gskinner.com/RegExr/), базовое регулярное выражение для всех тегов привязки - <a.*href=["'](?<url>[^"]+[.\s]*)["'].*>(?<name>[^<]+[.\s]*)</a> (http://weblogs.asp.net/palermo4/archive/2004/06/18/regex-pattern-for-anchor-tags-part-2.aspx)

...