2010-09-02 58 views
1

我有HTML的以下位:正則表達式 - 得到的一切,但最後一場比賽

<p><a href="http://vimeo.com/13114334" title="Grain & Gram: Nick Sambrato, Printmaker"><img src="http://b.vimeocdn.com/ts/747/476/74747630_200.jpg" alt="Grain & Gram: Nick Sambrato, Printmaker" /></a></p> 
<p>Read the full interview with Nick Sambrato, Printmaker here:<br /><br /><a href="http://grainandgram.com/nicksambrato/" target="_blank" rel="nofollow">grainandgram.com/nicksambrato/</a></p> 
<p>Cast: <a href="http://vimeo.com/grainandgram" style="color: #2786c2; text-decoration: none;">Grain & Gram</a></p> 

我的目標是最後一組段落標記的隔離。我正在嘗試通過匹配段落標籤之間的所有內容。我的希望是,我會得到三個結果,我可以操縱數據。

我嘗試以下的正則表達式:

<p\b[^>]*>(.*?)<\/p> 

這只是與第一組段落標記的匹配。我如何得到它與前兩個相匹配?

感謝

更新: 我在想這在錯誤的道路。我不能總是假設在我想要的投射文本之前會有X個信息量。然而,我可以假設Cast將成爲最後一段。所以修改後的問題:除了最後一段,我怎樣才能匹配所有內容?換句話說,我如何匹配之前的所有內容「演員:」?

回答

1

我想你只需要說你想要的那些多:

(<p\b[^>]*>(.*?)<\/p>)*

或者你可以使用你原來的正則表達式,並使用preg_match_all,並選擇最後一個元素。

編輯回覆:Howabout (<p\b[^>]*>(.*?)<\/p>)*<p>Cast

+0

謝謝,斯科特。其實我是以錯誤的方式思考這個問題的。介意看看更新? – 2010-09-02 19:46:51

相關問題