2013-06-25 91 views
1

我有一個字符串如下:查找字符串中的所有不匹配換行符

<a href="http://www.google.com"><img class="size-medium wp-image-427 alignnone" alt="" src="http://localhost/lucite/wp-content/uploads/Koala-300x225.jpg" width="300" height="225" /></a><a href="http://www.berg.nl"><img class="size-medium wp-image-426 alignnone" alt="" src="http://localhost/lucite/wp-content/uploads/Desert-300x225.jpg" width="300" height="225" /></a> 

正如你可以看到它包含兩個圖像的鏈接的。我想選擇兩個子開始

<a 

,終止於

/a> 

所以它包括圖像。

我最初的正則表達式是這樣的:

<a.+<img.+\/a> 

這抓起串,但沒有斷行只看到一個匹配,而不是兩個。

對於簡單的圖片我已經找到了一個更強大的正則表達式,用於查找兩個圖像,即使沒有斷行:

<[^<]+? \/> 

我似乎無法弄清楚如何去適應這個正則表達式還包括鏈接標籤。任何幫助?

回答

0

呀,正則表達式的東西不匹配是比較麻煩一些,試試:

preg_match_all(',<a(([^<]|<[^/]|</[^a]|</a[^>])+)</a>,', $a, $matches); 
print_r($matches[0]); 
+0

我得到一個警告:preg_match_all():未知的修飾詞「]」執行腳本時。它在http://gskinner.com/RegExr/上工作,雖然 – Roland

+0

很奇怪......它適用於我,你是否在嘗試與我相同的確切代碼或您是否修改了它? – Guillaume

+0

你說得對。我再次複製它,它工作。引入了新的問題,讓我猛撞牆壁,但您的答案解決了所述問題。謝謝。 – Roland

相關問題