2013-04-06 163 views
1

我有動態字符串是這樣的:PHP:Preg_match_all逃脫圓括號

$string1 = '<a style="background-image: url(&quot;http://someurl.com/image.jpg&quot;);" class="thumb" title="title goes here" href="http://www.someurl.com/"></a>'; 

我preg_match_all代碼:

preg_match('/<a style="background-image: url((.*?));" class="thumb" title="(.*?)" href="(.*?)"><\/a>/', $string1, $matches); 

echo $matches['1']; 
echo $matches['2']; 
echo $matches['3']; 

的網址()括號不工作,任何想法如何逃脫?

+2

'\\'是典型的轉義字符。 – Jon 2013-04-06 13:18:27

+0

[括號中的PHP正則表達式]可能的重複(http://stackoverflow.com/questions/8220180/php-regex-with-parentheses) – mario 2013-04-06 13:19:59

回答

1

你需要躲避()\

preg_match('/<a style="background-image: url\((.*?)\);" class="thumb" title="(.*?)" href=" (.*?)"><\/a>/', $string1, $matches); 

作爲一般規則,使用正則表達式來解析HTML頁面是不是要走的路。見Parsing Html The Cthulhu Way。 對於更好的解決方案,這裏有很多示例。

+0

這項工作,謝謝 – Redbox 2013-04-06 13:22:55