2012-01-17 58 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