2012-01-17 88 views
0

請有人可以幫助我以下所需的表達式:簡單預浸匹配模式

一個$內容變量保存HTML塊,我想匹配它可能包含任何ID字符串。所以,我在找<p>###GALLERY(ANY NUMBER HERE)###</p>

這是代碼,我已經不工作(對不起新的正則表達式):

if (preg_match("<p>###GALLERY[0-9]###</p>", $content)) 
{ 
    // Found 
} 

任何幫助將不勝感激。

+0

什麼是數字?總是隻有一位數字? – davogotland 2012-01-17 14:26:37

+0

可能是5,可能是3345863948563. Tim Cooper提到的+量詞解決了這個問題:-) – 2012-01-17 14:31:56

+0

[將ereg表達式轉換爲preg](http://stackoverflow.com/questions/6270004/converting-ereg-expressions -to-preg) – mario 2012-01-17 23:48:24

回答

5

您需要包括delimiters在你的表達:

if (preg_match("/<p>###GALLERY[0-9]###<\/p>/", $content)) 

我不知道,如果你需要這一點,但增加了+ quantifier[0-9]將允許多位數:

if (preg_match("/<p>###GALLERY[0-9]+###<\/p>/", $content)) 
+0

謝謝你的完美。 – 2012-01-17 14:28:26

+1

如果它不只是一個或兩個數字,你可能想用*代替。 '[0-9] *' – 2012-01-17 14:30:41

+0

這有效嗎?爲了逃避這個斜線,它不一定是兩個反斜槓嗎?我寧願在這一點上使用不同的分隔符,比如% – davogotland 2012-01-17 14:38:15