美好的一天!Get All Anchor Tags
我的正則表達式真的很糟糕,我想請求幫助我的項目。
我有我從其他網站抓取的內容,我想獲得所有具有此字符串的錨標籤。
target="_blank"
我該如何做到這一點?任何建議將不勝感激。
感謝
美好的一天!Get All Anchor Tags
我的正則表達式真的很糟糕,我想請求幫助我的項目。
我有我從其他網站抓取的內容,我想獲得所有具有此字符串的錨標籤。
target="_blank"
我該如何做到這一點?任何建議將不勝感激。
感謝
$dom = new DOMDocument();
$dom->loadHtml($yourCobtent);
$xpath = new DOMXpath($dom);
$yourAnchors = $xpath->query('//a[@target="_blank"]');
可能要將'DOMXPath :: query()'的返回值分配給 – Phil 2012-01-12 07:39:52
編輯的內容,謝謝指示 – 2012-01-12 07:41:33
正如在評論中提到的,正則表達式是不是這裏的答案。
使用DOM和XPath達到你想要
$doc = new DOMDocument;
$doc->loadHTMLFile('http://www.example.com/some-file.html');
$xpath = new DOMXPath($doc);
$anchors = $xpath->query('//a[@target="_blank"]');
與@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)
[不要試圖在任意HTML上使用正則表達式](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454),你可以在符合特定templ的HTML上擺脫它吃了,但是「從其他網站抓取的內容」並不安全。 – Quentin 2012-01-12 07:24:41
我有適合特定模板的HTML。謝謝你的快速反應。 – acidpaul 2012-01-12 07:30:19