Regex在';RegExr';但与preg_ replace无关


Regex works in 'RegExr' but not with preg_replace?

我是正则表达式的新手,我使用RegExr检查了以下模式,但在带有preg_replace的PHP中失败了。

我试着添加一个额外的反斜杠来转义第一个,但没有成功。

如果能为我指明正确的方向,我们将不胜感激。

示例:

   $output = preg_replace("'[if](.*)[/if/]*", ' ', $output);

我也尝试过添加斜线:

    $output = preg_replace("/'[if](.*)[/if/]*/", ' ', $output);

我试图修改的字符串是:

[if] <p>A statement goes here</p> [/if]
  1. 如果您希望[]表示文字,请转义它们
  2. 需要分隔符
  3. 如果分隔符出现在模式中,则必须添加is,或者选择另一个分隔符(我选择%是因为/
  4. 结束]*,0次或更多次]。。。。你确定吗
  5. 我怀疑更可能需要使用一个不合理的(.*?),但我把这件事留给你

提供:

"%'[if'](.*)'[/if']%"