我想從一些內容的正文中提取特定的url模式,並用新形成的url替換它。但我遇到了我的正則表達式模式的問題,並想看看你能否幫助我。現在正則表達式從<img>標籤中提取具體的url在一個HTML文檔
$body = '<p><img src="/file/637/view" height="540" width="640"></p>';
$pattern = '/src="/file/(0-9)+/view"/';
$pattern = '/src="/file/(.)+/view"/';
$pattern = '/"/file/[0-9]+/view"';
$pattern = '/\<img src="(.)+"(.)+"\>/';
preg_match($pattern, $body, $matches);
,最後的模式下將抓住整個圖像的標籤,這是偉大的,但我想它提取所有圖像的URL的內容(只需:
這裏是代碼我有測試此該網址)使用「/文件/(某些數字)/視圖」模式,以便我可以形成新的網址,然後做一個字符串替換它們。當我在$ matches var上運行print_r時,所有其他人都找不到任何東西。
很明顯,主體字符串表示我正在掃描的內容正文。任何建議如何讓這個工作,並抓住圖像的網址?這將不得不適用於多個圖像與大量其他html(包括錨標籤)混合的情況。
真正的問題是,你爲什麼使用正則表達式和XML解析? –
*(相關)* [最佳方法解析HTML](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662) – Gordon
@tandu上次我檢查它是便宜(資源方面)在一小塊內容上運行一個小的正則表達式,而不是將HTML段解析成一個對象,然後對其執行操作並將其從對象轉換回html。所以,除非你有一個強有力的論點來解析HTML,修改它,然後將其轉換回來,我想我會堅持使用正則表達式。 – pthurmond