2011-10-23 42 views
0

我試圖從使用PHP正則表達式的網頁獲取一些URL。PHP:從正則表達式中只獲得匹配的一部分

我這樣做:

preg_match_all('/"r"><a href="http:.*?"/i',$Rec_Data, $stuff); 

這個作品在返回URL的,但是我也得代碼,我不想:

"r"><a href="http://www.cbsnews.com/stories/2002/12/03/politics/main531460.shtml" 

我無法擺脫的「 r「和」a「標籤。我需要它,所以我不匹配我不想要的網址。我怎樣才能得到與「。*?」匹配的部分?

+0

可能重複[Extract all urls Href php](http://stackoverflow.com/questions/5262682/extract-all-urls-href-php) – Gordon

+0

[Regular Expression for grabbing the href attribute of a一個元素](http://stackoverflow.com/questions/3820666/regular-expression-for-grabbing-the-href-attribute-of-an-a-element/3820783#3820783) – Gordon

+0

[preg_match all a href](http://stackoverflow.com/questions/1519696/preg-match-all-a-href) – Gordon

回答

3

使用capturing group和結果使用第二個元素:

preg_match_all('/"r"><a href="(http:.*?)"/i',$Rec_Data, $stuff); 

看到它聯機工作:ideone

而且,你可能要考慮使用HTML parser解析HTML,而不是正則表達式。

+0

+1 - 你按時擊敗了我;) –

+0

不工作。我仍然得到不需要的部分。 – SrgHartman

+0

@SrgHartman:你的意思是「不起作用」?我發佈了一個鏈接到一個在線演示,你可以看到它的工作原理... –

相關問題