2017-10-08 69 views
0

我遇到了一些正則表達式問題,我敢肯定這裏有人可以幫助我。 我正在刪除一個網頁,並希望找到一個WordPress的鏈接的第一個實例。因此,例如,我有這樣的事情:如何限制正則表達式的長度?

preg_match("/<link\shref=.+\/wp-content\/themes\/(.+)\//", $site, $match); 

問題是,存在具有從WordPress網站圖片與同wp-content/theme結構的頁面,那麼會發生什麼是正則表達式捕捉頁面上的第一<link,去直到wp-content/theme/圖像爲止,並且給我一個誤報。

我一直在試圖解決這個問題,但我似乎無法成功。我以某種方式想到了頭腦,只在那裏尋找,但我無法做到。 我真正需要做的是找到一個<link,然後找到下一個>,只有當wp/content/之間存在給我一個積極的結果。

我對於正則表達式並不是非常瞭解。我知道我猜的基本知識,但這可能會有點不可思議。

我會很感激這裏的任何輸入,我敢肯定有一個簡單的方法來做到這一點。

感謝

+2

您可以使用http://php.net/manual/en/domdocument.getelementsbytagname.php,然後http://php.net/manual/en/domelement.getattribute.php和檢查你的術語'href'。 – chris85

回答

1

這裏有兩個問題,其中只有一個則是問有關。

你問能說「,直到找到一個>可以通過使用[^>]+代替.+

另一個問題要解決去解決的問題是,你正在使用正則表達式來解析HTML。改爲使用HTML解析庫