PHP正则表达式,无法弄清楚我的表达方式是什么

时间:2012-03-30 16:35:35

标签: php regex

我试图使用PHP的preg_match函数匹配几个html标签。请告诉我这个表达是否正确。

$keyword = "keyword";

$contents = "some random keyword some random keyword some random keyword some random 
keyword some random keyword some random keyword some random keyword some random keyword 
some random keyword some random keyword some random keyword some random keyword some  
random keyword some random keyword some random <strong>keyword</strong> some 
random keyword some random keyword some random keyword 
some random keyword some random keyword some random keyword  ";

 $seo_pattern = "/<strong>{1}keyword{1}</strong>{1}/";

if(preg_match($seo_pattern, $contents)){
echo "<br>Match found :)";
}else{
echo "<br>No match found!";
}

我没有得到任何比赛? :(

3 个答案:

答案 0 :(得分:3)

逃避斜线

$seo_pattern = "/<strong>keyword<\/strong>/";
                          here __^

答案 1 :(得分:2)

我不知道你为什么使用{1}。它的作用是告诉{1}之前的字符或组必须只匹配一次,但如果你根本没有指定它,那么它只会匹配一次。

然后你使用/作为正则表达式分隔符,你也使用正则表达式中的/,这不会起作用。您可以更改正则表达式分隔符或斜杠反斜杠。

其他分隔符:

#<strong>keyword</strong>#

逃避斜线:

/<strong>keyword<\/strong>/

答案 2 :(得分:1)

您需要转义/

$seo_pattern = "/<strong>{1}keyword{1}<\/strong>{1}/";