PHP Preg_match 总是 return 真

PHP Preg_match always return true

我正在尝试使用 get_posts、

检索 Wordpress 帖子列表

之后,我想在 post_content 中搜索是否有特定字符串的匹配项。

现在,我的代码是:

if(preg_match('/\b[download id="2"]\b/i', $value->post_content)){
       echo('match');
}else{
       echo('nomatch');
}

但它 return 始终匹配。

我做错了什么?

方括号表示匹配指定的任何字符,因此在您的情况下它匹配 downla</code> 或 <code>i="2.

如果你想在一个字符串中匹配download id="2"那么你需要使用/(download id="2")/i。如果你想匹配 [download id="2"] 那么你需要像这样转义方括号:/(\[download id="2"\])/i